日期类型的Mysqli UPDATE查询失败,代码失败,命令行成功

时间:2012-10-25 15:49:42

标签: php mysqli sql-update

此查询返回0个受影响的行。

mysqli_query($conn, "UPDATE dates SET date = '$date' WHERE url = '". mysqli_real_escape_string($conn, $url) ."'")

如果我打印出sql查询,它看起来像这样 -

UPDATE dates SET date = '2012-10-25' WHERE url = 'http://foo.com'

如果我在命令行上手动执行此操作,它就可以正常工作。

为什么我的mysqli_query()会失败?

修改

如果我出示警告,我会 -

Warning (1265): Data truncated for column 'date' at row 1

我的日期似乎格式正确。为什么会被截断,我该如何解决?

3 个答案:

答案 0 :(得分:0)

  printf("Affected rows : %d\n", mysqli_affected_rows($conn));

答案 1 :(得分:0)

我认为没有必要将连接资源传递给mysqli_query和mysqli_real escape_string,只需将它传递给你的select mysqli_select_db,如mysqli_select_db('database',$ conn)

答案 2 :(得分:0)

然后,您必须检查在该查询上传递的每个变量的值:$date$conn$url,并确保每个变量都返回任何值。但根据您的错误行,我认为它将是您的$date,可能没有返回该变量的值或日期格式错误。这就是查询返回该错误的原因。

尝试回显$date

的值