【发布时间】:2012-08-31 21:26:56
【问题描述】:
我不明白PDO PARAM_* 语句中的长度选项。
长度是否表示所需字符的数量,还是最大?
例子:
$sth->bindParam(2, $color, PDO::PARAM_STR, 12);
这需要 12 个字符,还是限制为 12 个字符?或者,我是否完全误解了这是在做什么?
【问题讨论】:
-
手册中的哪部分描述你具体难以理解? "length - 数据类型的长度。要表明参数是来自存储过程的 OUT 参数,您必须显式设置长度。" - php.net/manual/en/pdostatement.bindparam.php
-
@hakra - 是限制为 12 个字符,还是需要 12 个字符。
-
对这个问题的跟进——长度是 characters 还是 bytes?我找不到任何可以区分两者的东西。显然,只有使用多字节字符才重要,这正是我需要知道的原因。我倾向于假设字节,因为基于字节的过大值似乎比可能截断的基于字符的过短值更安全。