Mysql
 sql >> Base de données >  >> RDS >> Mysql

Les types de bind_param de l'instruction préparée MYSQLI ne fonctionnent pas

$stmt->bind_param() ne vérifie pas les variables données pour un certain type, il les convertit uniquement dans le type spécifié. Et votre chaîne 'aaaaaaa' est convertie en une valeur int :0. C'est ainsi que php le fait.

L'instruction d'insertion de la base de données n'est pas le bon endroit pour vérifier si vos variables contiennent des valeurs utiles/correctes. Faites-le avant et n'essayez de les insérer que si vos validations fonctionnent.

Pour faire la validation d'un int, vous pouvez utiliser la fonction php is_numeric() ou is_int().