2012-08-31 9 views
5

No entiendo la opción de longitud en una declaración PDO PARAM_*.PDO PARAM_STR y longitud

¿La longitud indica una cantidad de caracteres requeridos, o es un máximo?

Ejemplo:

$sth->bindParam(2, $color, PDO::PARAM_STR, 12); 

¿Se requiere 12 caracteres, o se trata de limitarlo a 12 caracteres? O, ¿estoy completamente mal entendiendo lo que está haciendo?

+0

¿Qué parte de la descripción en el manual es difícil de entender en específico? * "** longitud ** - Longitud del tipo de datos. Para indicar que un parámetro es un parámetro OUT de un procedimiento almacenado, debe establecer explícitamente la longitud." * - http://php.net/manual/en/ pdostatement.bindparam.php – hakre

+1

@hakra - está LIMITADO a 12 caracteres, o REQUIERE 12 caracteres. –

+0

Un seguimiento de esta Q - ¿es la longitud en _caracters_, o en _bytes_? No puedo encontrar nada que los distinga. Obviamente, solo importa si está usando caracteres multibyte, que es exactamente por lo que necesito saber. Me inclino por asumir bytes, ya que un valor basado en bytes demasiado grande parece más seguro que un valor demasiado corto basado en caracteres que podría truncar. – ashnazg

Respuesta

5

Es una indicación de cómo la cantidad de datos que desea recibir en el parámetro de salida, el servidor no enviará más que esto.

Por lo tanto, para responder a su pregunta, es una limitación en lugar de un requisito.