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

mysqli_stmt ::bind_param() [mysqli-stmt.bind-param] :le nombre de variables ne correspond pas au nombre de paramètres

$sql = 'INSERT INTO users (user_email, user_name, user_pref, user_password)
      VALUES(?, ?, ?, des_encrypt(substring(md5(rand()),1,8)))';

Définit seulement 3 espaces réservés mais vous essayez d'en écrire 4.

$stmt->bind_param('ssss', $_POST['user_email'], $_POST['user_name'], $_POST['user_pref'], $_POST['user_password']);

Pour chaque ? vous insérez dans l'instruction SQL préparée, vous devez passer une variable dans bind_param.