You have an error in your SQL syntax error?(您的SQL语法错误中有错误吗?)
本文介绍了您的SQL语法错误中有错误吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个函数,其中有一个相当简单的SQL,它在语法中给出了不可能有错误的语法。
function createPetition($conn, $pName, $pTarget, $pDescription, $userId) {
$sql = "INSERT INTO petitions (petitionName, petitionTarget, petitionDescription, usersId) VALUES (?, ?, ?, ?);";
//$sql2 = "INSERT INTO petitions (`petitionDate`) VALUES (NOW());";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("location: ./index.php?error=stmtfailed");
exit();
}
/*if (!mysqli_stmt_prepare($stmt, $sql2)) {
header("location: ./index.php?error=stmtdatefailed");
exit();
}*/
mysqli_stmt_bind_param($stmt, "ssss", $pName, $pTarget, $pDescription, $userId);
if (!mysqli_query($conn, $sql)) {
echo "Error description: " . mysqli_error($conn);
} else {
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
header("location: ./petitionfinal.php?error=none");
exit();
}
}
其结果为
错误描述:您的SQL语法中有一个错误;请查看与您的MariaDB服务器版本对应的手册,以了解要使用的正确语法。第1行
当没有明显的错误时。
推荐答案
问题是您的代码中有一个流氓mysqli_query()
。您需要将其删除。
您可能错过了它,因为您有太多的代码。你应该把它的大部分去掉。你真的不需要所有这些。
以下是代码应该是什么样子:
function createPetition(mysqli $conn, $pName, $pTarget, $pDescription, $userId) {
$sql = "INSERT INTO petitions (petitionName, petitionTarget, petitionDescription, usersId) VALUES (?, ?, ?, ?);";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssss", $pName, $pTarget, $pDescription, $userId);
$stmt->execute();
header("location: ./petitionfinal.php?error=none");
exit();
}
但是,在函数内部设置重定向不是一个好主意。我强烈建议将其从函数中删除。
function createPetition(mysqli $conn, $pName, $pTarget, $pDescription, $userId) {
$sql = "INSERT INTO petitions (petitionName, petitionTarget, petitionDescription, usersId) VALUES (?, ?, ?, ?);";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssss", $pName, $pTarget, $pDescription, $userId);
$stmt->execute();
}
// when you call
createPetition($conn, $pName, $pTarget, $pDescription, $userId);
header("location: ./petitionfinal.php?error=none");
exit();
看看它有多好。现在发现错误要容易得多。
如果您想知道有关错误的信息,我必须向您推荐How to get the actual mysql error and fix it?
这篇关于您的SQL语法错误中有错误吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:您的SQL语法错误中有错误吗?
猜你喜欢
- 如何在 Symfony2 中正确使用 webSockets 2021-01-01
- 如何从数据库中获取数据以在 laravel 中查看页面? 2022-01-01
- PHP - if 语句中的倒序 2021-01-01
- 覆盖 Magento 社区模块控制器的问题 2022-01-01
- Laravel 5:Model.php 中的 MassAssignmentException 2021-01-01
- openssl_digest vs hash vs hash_hmac?盐与盐的区别HMAC? 2022-01-01
- 如何使用 Google API 在团队云端硬盘中创建文件夹? 2022-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- 使用 GD 和 libjpeg 支持编译 PHP 2022-01-01
- PHP foreach() 与数组中的数组? 2022-01-01