SQL查询 - 简单查询,为什么不更新?

时间:2014-04-04 18:30:14

标签: mysql sql

这是我为相应用户更新“lastactive”列的新代码,但它仍然没有更新lastactive。 lastactive的数据类型是时间所以它应该插入,我做错了什么?

$userID  = mysqli_query("SELECT id FROM users WHERE username = '$dbusername' AND password = '$dbpassword' ");
mysqli_query("UPDATE users SET lastactivity = ".time()." WHERE ID = ".$userID);M

2 个答案:

答案 0 :(得分:0)

mysqli_query在出错时返回FALSE,或在成功时返回结果对象。

您必须调用它的fetch_allfetch_assoc方法,然后选择您的单个值。

答案 1 :(得分:0)

在您的代码中,$userID尚未从mysqli_query电话中提取mysqli_query()。请记住return type for queries

  

失败时为假。对于成功的 SELECT,SHOW,DESCRIBE EXPLAIN 查询mysqli_query()将返回mysqli_result个对象。对于其他成功的查询,if( $result = mysqli_query("SELECT id FROM users WHERE username = '$dbusername' AND password = '$dbpassword' ")) { // Fetch the row $row = $result->fetch_assoc(); // Update the time $success = mysqli_query("UPDATE users SET lastactivity = '".time()."' WHERE ID = '".$row['id']."' "); // Report success of second query if( $success) { echo 'Success'; } else { echo 'Failed to update lastactivity for user ID ' . $row['id']; } } else { // Report failure of first query echo 'User ID select query failed.'; } 将返回TRUE。

要从结果中获取ID,您需要使用fetch_assocfetch_array获取数据。 (请注意,不推荐使用mysql_fetch_array,不应使用它。)

{{1}}