0

此查询返回 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

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

4

3 回答 3

0

尝试

  printf("Affected rows : %d\n", mysqli_affected_rows($conn));
于 2012-10-25T15:51:48.940 回答
0

我认为没有必要将该连接资源传递给 mysqli_query 和 mysqli_real escape_string,只需将其传递到您的选择 mysqli_select_db 中,如 mysqli_select_db('database',$conn)

于 2012-10-25T15:52:02.573 回答
0

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

尝试回显$date.

于 2012-10-26T00:02:08.370 回答