无法使用PHP更新MySql中的Date字段

时间:2016-07-13 11:19:34

标签: php mysql

我的表中有一个DATE字段,我正在尝试使用以下代码更新它:

$query = mysqli_query($conn,$sql);
$todaydate = date("Y-m-d");
$sqlDate = date('Y-m-d', strtotime($todaydate));
$sql="UPDATE Library SET Loaned=1, LoanedDate=$sqlDate WHERE BookId=$bookId";
$query = mysqli_query($conn,$sql);

它更新“Loaned”字段,但始终将Date字段设置为“0000-00-00”。任何人都可以表明我做错了吗?

7 个答案:

答案 0 :(得分:5)

您的更新查询中缺少'引号

只需使用类似的东西

$sql="UPDATE Library SET Loaned=1, LoanedDate='$sqlDate' WHERE BookId='$bookId'";
$query = mysqli_query($conn,$sql);

答案 1 :(得分:4)

您必须将值添加到值...其他明智的日期可能看起来像是mysql的无效整数。方法如下:

    $query     = mysqli_query($conn,$sql);
    $todaydate = date("Y-m-d", time());  //<== DON'T FORGET THE 2ND ARGUMENT TO date(): TIME-STAMP. YOU MAY USE: time()
    $sqlDate   = date('Y-m-d', strtotime($todaydate));
    $sql       ="UPDATE Library SET Loaned=1, LoanedDate='{$sqlDate}' WHERE BookId='{$bookId}'";
    $query     = mysqli_query($conn,$sql);

答案 2 :(得分:3)

为什么不使用MySQL函数来更新日期

使用此

C/C++

答案 3 :(得分:2)

使用此代码更改您的查询

$sql="UPDATE Library SET Loaned=1, LoanedDate= current_date() WHERE BookId='".$bookId."'";

同时检查数据库中的数据结构。

答案 4 :(得分:2)

此查询工作正常:

$current_date = strtotime(date('Y-m-d H:i:s'));
$sql = "UPDATE user SET dt_added = '".$current_date."' WHERE id = '$id' "; 

答案 5 :(得分:1)

您没有在SQL查询中正确连接Date字符串。

使用'.运算符连接字符串。像这样,

$sql="UPDATE Library SET Loaned=1, LoanedDate='".$sqlDate."' WHERE BookId='".$bookId."'";

最好使用Prepared语句在SQL查询中传递参数。

Learn more about PHP Prepared Statements

答案 6 :(得分:0)

仔细观察,我会这样做:

$sql="UPDATE Library SET Loaned=1, LoanedDate='".$todaydate."' WHERE BookId='".$bookId."'";

而不是

$sql="UPDATE Library SET Loaned=1, LoanedDate='".$sqlDate."' WHERE BookId=$bookId";