MySQL错误在' 1'附近第1行

时间:2017-11-02 21:06:35

标签: php mysql

从表格中删除记录时,我一直收到此错误。该记录确实被数据库删除,但处理删除的php页面失败。我逐行检查了代码,不明白为什么我一直收到错误: 失败的原因是:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在#1;'附近使用正确的语法。在第1行

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
$idSched = $_GET['idSched'];
$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = mysqli_query($conn, "DELETE FROM schedule_master WHERE idSched='$idSched'");

if (mysqli_query($conn,$sql))
header('refresh:1; url=schedule_main_edit.php');
else
echo "failed because of: " . mysqli_error($conn);
?>

1 个答案:

答案 0 :(得分:-1)

您要做的是使用预准备语句来阻止sql注入。这是一个好主意,但它会有所不同:

$stmt = $con->prepare("DELETE FROM schedule_master WHERE idSched = ?");
$stmt->bind_param("i", $idSched);   // where "i" is for int
$stmt->execute();
$stmt->close();

这可行,但我更愿意使用某种类型的数据库包装器来为您进行绑定。这样你就可以编写更少的代码。我不能在不知道你正在使用什么框架的情况下推荐一个,但是大多数已经内置了这些包装器或者具有可以轻松安装的扩展。