Me pregunto qué se utiliza la declaración del tipo de datos en bindParam()
(o bindValue()
) para ...PHP PDO :: bindParam() tipos de datos ... ¿cómo funciona?
quiero decir, pensé que si yo defino un argumento entero (PDO::PARAM_INT
), el argumento debe ser convertido a un número entero, algo así como
$delete->bindParam(1, $kill, PDO::PARAM_INT);
// should work like
$delete->bindParam(1, (int)$kill);
o al menos arrojar un error si el argumento no es del tipo declarado. Pero este no es el caso.
googlear alrededor, me encontré con que en el archivo php.net:
Hola a todos,
estoy trabajando actualmente en la DOP. Exactamente en la función bindParam(). El tercer parámetro data_type parece estar aquí para forzar el tipo del valor? Pero cuando intento :
$sql = "INSERT INTO produit (idproduit, nom, marque) VALUES (NULL, :nom, :marque)"; $stmt = $dbh->prepare($sql); $nom = 'Testarossa'; $marque = 'Ferrari' ; $stmt->BindValue(':marque',$marque) ; $stmt->BindParam(':nom',$nom,PDO::PARAM_INT) ; $stmt->execute(); $nom = '250 GTO' ; $stmt->execute(); ?>
que estaba esperando a tener ya sea un error de PHP o un número entero en mi base de datos. Pero en mi base de datos que tengo:
22 Testarossa de Ferrari 250 GTO 23 Ferrari
Es decir que no cambiaría si tengo el tercer parámetro o no. O quizás echo de menos algo. ¿Puede alguien me tolera más? O simplemente puede alguien decirme dónde puedo encontrar información al respecto.
Saludos,
Cyruss
eso es exactamente mi situación. ¿Dónde están mis pensamientos que van mal?
"Esperaba tener un error PHP o un interger en mi base de datos". yo también – VolkerK