Php SQL语法使用近';06:09:43,其中图书id=19,发行日期=2017-03-29 17:28:34';在1号线
错误:无法执行SQL语法错误; 检查与您的MariaDB服务器版本对应的手册以了解 在'06:09:43附近使用的正确语法,其中Book_id=19和 发布日期=2017-03-29 17:28:34'在1号线 我在执行以下代码时遇到了上述错误-Php SQL语法使用近';06:09:43,其中图书id=19,发行日期=2017-03-29 17:28:34';在1号线,php,mysql,Php,Mysql,错误:无法执行SQL语法错误; 检查与您的MariaDB服务器版本对应的手册以了解 在'06:09:43附近使用的正确语法,其中Book_id=19和 发布日期=2017-03-29 17:28:34'在1号线 我在执行以下代码时遇到了上述错误- if(isset($_GET['rt']))//rt is a variable I'm passing in an anchor tag { $dateis=$_GET['rt']; } if(isset($_GET['id']))//id is a
if(isset($_GET['rt']))//rt is a variable I'm passing in an anchor tag
{
$dateis=$_GET['rt'];
}
if(isset($_GET['id']))//id is also sent along with rt
{
$bk_id=$_GET['id'];
}
$ret = 'returned successfully';
$date = date('Y-m-d H:i:s');
if(mysqli_query($conn, "UPDATE issued_books SET Date_returned = $date WHERE Book_id = $bk_id AND Date_issued = $dateis"))
{
$fine = mysqli_query($conn, "SELECT DATEDIFF('$dateis', '$date') AS days");
$fine = $fine*10;
mysqli_query($conn, "UPDATE issued_books SET Fine_amt = (Fine_amt + $fine) WHERE Date_issued = $dateis");
mysqli_query($conn, "UPDATE library_books SET Available = (Available + 1) WHERE Book_id = $bk_id");
header("Location: return-books.php?book=".urlencode($ret));
} else{
echo "ERROR: Could not able to execute " .mysqli_error($conn);
}
试试这些,只需在变量中添加单引号
"UPDATE issued_books SET Date_returned = '$date' WHERE Book_id = '$bk_id' AND Date_issued = '$dateis'"
"UPDATE issued_books SET Fine_amt = (Fine_amt + '$fine') WHERE Date_issued = '$dateis'"
"UPDATE library_books SET Available = (Available + 1) WHERE Book_id = '$bk_id'"
尽管如果你使用事先准备好的陈述会更好 试试这些,只需在变量中添加单引号即可
"UPDATE issued_books SET Date_returned = '$date' WHERE Book_id = '$bk_id' AND Date_issued = '$dateis'"
"UPDATE issued_books SET Fine_amt = (Fine_amt + '$fine') WHERE Date_issued = '$dateis'"
"UPDATE library_books SET Available = (Available + 1) WHERE Book_id = '$bk_id'"
尽管如果你使用事先准备好的陈述会更好 在您的第一次更新查询中,在此处使用单引号
Date_returned = '$date'
我还建议在第一次更新查询中使用pdo,在这里使用
“
单引号
Date_returned = '$date'
我还建议使用pdo字符串,需要用引号封装。使用准备好的语句,驱动程序将为您处理引用/转义。您可以使用您当前的代码进行SQL注入。请阅读-总结是,这不是解决志愿者问题的理想方法,并且可能会对获得答案产生反作用。请不要将此添加到您的问题中。字符串需要用引号封装。使用准备好的语句,驱动程序将为您处理引用/转义。您可以使用您当前的代码进行SQL注入。请阅读-总结是,这不是解决志愿者问题的理想方法,并且可能会对获得答案产生反作用。请不要将此添加到您的问题中。有其他方法可以将变量直接包含到查询中,一种方法是将它们包含在一个引号中。这意味着什么?接近'06:09:43有其他方法可以将变量直接包含到查询中,一个是把它们放在一个引文中,这意味着什么——在06:09附近:43@ParvezKhan:如果有效,请单击绿色勾号接受此ans。也请考虑将代码转换成PDO。@ NIKLESH让OP选择他是否想使用<代码> MySqLI< /COD>或<代码> PDO @ ParvezKhan:如果它工作通过点击绿色刻度标记接受这个ANS。请考虑将代码转换成PDO。@ NIKLESH让OP选择他是否使用<代码> MySqLI< /COD>或<代码> PDO < /代码>