我正在创建一个用户注册系统,并且在我开始修改数据库的那一刻我得到了错误 “警告:mysqli_stmt :: bind_param():类型定义字符串中的元素数量与第41行的/opt/lampp/htdocs/Projectss/01_sarah/index.php中的绑定变量数量不匹配
我已经尝试过使用php文档中涉及向数据库添加数据的每种方法
这是一些代码
$hash_password = password_hash($password, PASSWORD_DEFAULT);
$query = "INSERT INTO users (first_name,last_name,email,password) VALUES('$first_name','$last_name','$email','$hash_password')";
$stmt = $conn->prepare($query);
if (!$stmt) {
echo mysqli_error($conn);
}
$stmt->bind_param('ssss', $query);
$stmt->execute(); // execute prepared statement
$conn->close(); // close connection
}
预期的结果应该是将信息保存到数据库后不接收任何警告
答案 0 :(得分:0)
您要在bindParam中传递完整的查询,并且还要在查询中传递值(而不是此值),您需要像这样在bindParam中传递参数。
$hash_password = password_hash($password, PASSWORD_DEFAULT);
$query = "INSERT INTO users (first_name,last_name,email,password) VALUES(?, ?, ?, ?)";
$stmt = $conn->prepare($query);
$stmt->bind_param('ssss', $first_name, $last_name, $email, $hash_password);
$stmt->execute(); // execute prepared statement
$conn->close(); // close connection