<?php
session_start();
$user = $_SESSION['login'];
$mysql_connect = mysql_connect("localhost", "root", "");
$mysql_select_db = mysql_select_db("site");
$sql = "SELECT * FROM `msg_inbox` WHERE `to` = '$user'";
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
$mysql_connect = mysql_connect("localhost", "root", "");
$mysql_select_db = mysql_select_db("site");
$query = ("UPDATE msg_inbox SET unread = 0 WHERE id= ".$row['id']);
$result = mysql_query($query);
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:警告:mysql_fetch_array():提供的参数不是第8行的有效MySQL结果资源你能帮助我吗?
您已$result在循环中重新分配.在第一次迭代之后,变量$result将保存一个布尔值,指示UPDATE语句的成功或失败.
更改:
$result = mysql_query($query);
Run Code Online (Sandbox Code Playgroud)
至:
$result2 = mysql_query($query);
Run Code Online (Sandbox Code Playgroud)
要不就:
mysql_query($query);
Run Code Online (Sandbox Code Playgroud)
并注意SQL注入漏洞.
编辑实际上,您的整个代码可以而且应该缩短为:
<?php
session_start();
$user = $_SESSION['login'];
// A blank password for root? Really?
$mysql_connect = mysql_connect("localhost", "root", "");
$mysql_select_db = mysql_select_db("site");
$sql = "
UPDATE `msg_inbox`
SET `unread` = 0
WHERE `to` = '".mysql_real_escape_string($user)."'
";
// Don't show the result of mysql_error() in a production environment!
$result = mysql_query($sql) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)