ventajas stmt statement sentencias sentencia procedimiento preparadas preparada desventajas almacenado php pdo

php - stmt - ¿Es el colon inicial para los nombres de parámetros pasados a PDOStatement:: bindParam() opcional?



sentencias preparadas ventajas y desventajas (1)

Al pasar los parámetros con nombre de la forma :name a PDOStatement::bindParam() , parece funcionar independientemente de si se utilizan o no los dos puntos.

es decir, esto:

$statement->bindParam('':name'', $var);

o esto:

$statement->bindParam(''name'', $var);

parece funcionar.

Aquí está la documentación para PDOStatement::bindParam()

parámetro

Identificador de parámetro Para una sentencia preparada utilizando marcadores de posición con nombre, este será un nombre de parámetro de la forma : nombre. Para una declaración preparada utilizando marcadores de posición de signo de interrogación, esta será la posición de 1 indexado del parámetro.

¿Esto significa que se pueden dejar los dos puntos?


No, dado que la documentación no menciona esto, creo que es seguro suponer que este comportamiento no es oficialmente compatible y no se debe confiar en él.

Sin embargo, en realidad funciona (al menos en PHP 5.3.24) - internamente se agregarán dos puntos al parámetro si falta ( ver ext/pdo/pdo_stmt.c:363 en el código fuente de PHP 5.3.24 ) .