我的表中有一个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”。任何人都可以表明我做错了吗?
答案 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查询中传递参数。
答案 6 :(得分:0)
仔细观察,我会这样做:
$sql="UPDATE Library SET Loaned=1, LoanedDate='".$todaydate."' WHERE BookId='".$bookId."'";
而不是
$sql="UPDATE Library SET Loaned=1, LoanedDate='".$sqlDate."' WHERE BookId=$bookId";