gpt4 book ai didi

php - SQL 在第 1 行处使用准备好的语句 "near ' ?,?,?,?) 引发语法错误

转载 作者:行者123 更新时间:2023-11-29 09:49:12 25 4
gpt4 key购买 nike

我的目标是将用户的登录信息发送到 XAMPP SQL 数据库。数据成功到达那里,但程序抛出错误“您的 SQL 语法有错误;请检查与您的 MariaDB 服务器版本对应的手册,以获取在 '?,?,?,?)' 行附近使用的正确语法。 1"

我一直在寻找这个特定问题的答案,但尚未找到解决方案。

    $password = $_POST['pwd'];
$email = $_POST['email'];
$username = $_POST['uid'];
$sql = "INSERT INTO users(idUsers, uidUsers, emailUsers,
pwdUsers) VALUES (?,?,?,?);";
$idnum = "";
$hashpwd = password_hash($password, PASSWORD_DEFAULT);
$stmt = mysqli_stmt_init($conn);
mysqli_stmt_prepare($stmt, $sql);
mysqli_stmt_bind_param($stmt, "ssss",$idnum, $username, $email,
$hashpwd);
mysqli_stmt_execute($stmt);
if(!mysqli_query($conn, $sql)){

die(mysqli_error($conn));
exit();

}

else{
echo("YAY");
}

PHP 和 SQL 错误日志没有显示任何内容,我已经检查了其余代码中的错误,这是唯一引发错误的部分。似乎有很多关于这个主题的帖子。我查了很多都没有发现这个问题。

如有任何帮助,我们将不胜感激!

最佳答案

您已经通过调用 mysqli_stmt_execute($stmt) 执行了查询;对 mysqli_query 的调用失败,因为该函数用于执行正常(未准备)查询,因此 $sql 中的 ? 不是被替换。您应该检查 mysqli_stmt_execute 调用的返回状态:

if(!mysqli_stmt_execute($stmt)){
die(mysqli_error($conn));
exit();
}
else{
echo("YAY");
}

关于php - SQL 在第 1 行处使用准备好的语句 "near ' ?,?,?,?) 引发语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55116449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com