2012-08-31 16 views
5

Non capisco l'opzione di lunghezza in un'istruzione PDO PARAM_*.PDO PARAM_STR e lunghezza

La lunghezza indica una quantità di caratteri richiesti oppure è un valore massimo?

Esempio:

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

Questo richiede 12 caratteri, o si tratta di limitarla a 12 caratteri? Oppure, sto completamente fraintendendo ciò che sta facendo?

+0

Quale parte della descrizione nel manuale è difficile da comprendere in modo specifico? * "** lunghezza ** - Lunghezza del tipo di dati. Per indicare che un parametro è un parametro OUT di una stored procedure, è necessario impostarne esplicitamente la lunghezza." * - http://php.net/manual/en/ pdostatement.bindparam.php – hakre

+1

@hakra - è LIMITATO a 12 caratteri, o RICHIEDE 12 caratteri. –

+0

Un follow-up su questo Q - è la lunghezza in _caratteri_, o in _bytes_? Non riesco a trovare nulla che contraddistingue i due. Ovviamente conta solo se stai usando caratteri multibyte, che è esattamente il motivo per cui ho bisogno di sapere. Sono propenso ad assumere byte, dal momento che un valore troppo grande basato su byte sembra più sicuro di un valore troppo breve basato sui caratteri che potrebbe troncare. – ashnazg

risposta

5

È un'indicazione di quanti dati si desidera ricevere nel parametro di output, il server non invierà più di questo.

Quindi, per rispondere alla tua domanda, è una limitazione piuttosto che un requisito.

Problemi correlati