gpt4 book ai didi

php - fetch_assoc() 查询问题

转载 作者:行者123 更新时间:2023-11-29 06:18:25 27 4
gpt4 key购买 nike

我有这个功能:

    function myFunc()
{
$conn=new mysqli('localhost','root','','myDb');
$conn->query('BEGIN');
$query="SELECT events_participants.userid,(SELECT COUNT(*) FROM events_participants WHERE events_participants.eventid=events.id FOR UPDATE) AS totRep FROM events INNER JOIN events_participants ON events_participants.eventid=events.id WHERE events.isConfirmed=3 AND reputationsUpdated=0";
$result=$conn->query($query);
if($result!==FALSE)
{
while(($row=$result->fetch_assoc())!==NULL)
{

$query="UPDATE users SET reputation=reputation+".$row['totRep'].",presences=presences+1 WHERE id=".$row['userid'];
$result=$conn->query($query);
if($result==FALSE)
{
$conn->query('ROLLBACK');
throw new DatabaseErrorException();
}
}
$query="UPDATE events SET reputationsUpdated=1 WHERE isConfirmed=3 AND reputationsUpdated=0";
$result=$conn->query($query);
if($result!==false)
$conn->query('COMMIT');

else
$conn->query('ROLLBACK');
throw new DatabaseErrorException();
}
else
{
throw new DatabaseErrorException();
}
}
myFunc();

如果我对此进行测试,它会告诉我: 在非对象上调用成员函数 fetch_assoc()...在 while 循环所在的行上。

但是那里的 fetch_assoc 方法实际上填充了我的 $row 数组(我测试了回显 $row['totRep']..所以问题不在查询中..

即使我在 phpmyadmin 中测试相同的查询,它实际上返回两行..

哪里出错了?

我错过了什么?

再次感谢大家!

最佳答案

您正在多次重写 $result 变量。
您必须重命名它。
如果要在脚本中进一步使用变量(例如 $result one),则不应重写它。
但是,如果它是一次性使用的变量,例如 $query one,则可以保留相同的名称以提高可读性。

关于php - fetch_assoc() 查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5168683/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com