为什么此查询不适用于指定的日期?

时间:2019-05-19 22:30:08

标签: php mysql

我已经使用php连接了数据库。当我按下Delete按钮时,一个php文件连接到另一个具有以下代码的php文件:

<?php include("dbconfig.php");
 $memberID = $_GET['memberID'];
 $ISBN = $_GET['ISBN'];
 $copyNr = $_GET['copyNr'];
 $date_of_borrowing = $_GET['date_of_borrowing'];

//getting id of the data from url
$sql="DELETE FROM borrows WHERE ISBN=$ISBN AND memberID=$memberID AND copyNr=$copyNr AND date_of_borrowing=$date_of_borrowing";
$result = mysqli_query($conn,$sql);


//redirecting to the display page (borrows_table.php in our case)
//header("Location:borrows_table.php");

?>

当我运行此代码时没有“ AND date_of_borrowing = $ date_of_borrowing”;“ 它正确删除了元组,但是如图所示,什么也没有发生。我检查了在此文件中给出的变量memberID,ISBN,copyNr和date_of_borrowing实际上是否正确。那么可能是什么问题?

2 个答案:

答案 0 :(得分:0)

在查询前回显$ sql。 MySQL仅接受以下格式 YYYY-MM-DD HH:II:SS 例如:2019-05-20 12:39:30 并且 用引号括住您的日期


$sql="DELETE FROM borrows WHERE ISBN=$ISBN AND memberID=$memberID AND copyNr=$copyNr AND date_of_borrowing='$date_of_borrowing'";

echo $sql;

$result = mysqli_query($conn,$sql);

答案 1 :(得分:-1)

您遇到的错误是日期字段将错误的mysql读取日期解析为outer: // label the loop while (lista.size()>0) { for (RaceTurtle raceTurtle : lista) { raceTurtle.raceStep(); if(raceTurtle.getX() > RaceWindow.X_END_POS) { lista.remove(raceTurtle); winners.add(raceTurtle); } if (lista.size()>0) { break outer; // end the outer loop, preventing // the possible iteration of nothing } w.delay(10); } } 格式,因此您必须将yyyy-mm-dd格式化为$date_of_borrowing格式,然后才能正常工作

'yyyy-mm-dd'

我的情况很好,请确保将日期放入$date = DateTime::createFromFormat('d/m/Y', $date_of_borrowing)->format('Y-m-d');

PS-在处理数据之前,请进行一些过滤和mysql注入检查。