mysqli_query为null但没有错误消息

时间:2013-03-22 16:39:02

标签: php mysql

我正在为疯狂的nfl联赛创建一个可排序的力量排名列表。如果你想在

看到它

http://www.stephenjesse.com/projects/powerrankings/index.php

当我尝试计算上次保存的排名的变化时,我得到的问题是用于获取最后一个排名的查询返回null有时会导致更改错误,因为它认为旧排名为0时不。这是for循环的基本片段

foreach($order as $team)
{
    $query="SELECT * FROM powerrankings WHERE team='$team'";
    echo "query to select team:".$query."\n\n";
    $result=mysqli_query($db,$query) or die(mysqli_error($db));
    $selectedTeam=$result->fetch_assoc();
    $oldRank=intval($selectedTeam['ranking']);
    $change=$oldRank-$rank;

我不确定是什么错,我检查了apache错误日志,我已经尝试输出mysqli_errer()并且我已经检查了mysql.log错误日志并且没有显示任何内容。我试过睡了5秒在查询之间,快速触发查询,但这不起作用。它只有一些时间。以下是我在页面上的调试输出示例

查询选择团队:SELECT * FROM powerrankings WHERE team ='Panthers'

队:豹 老排名:5 新排名:1

array(7){   [ “排名”] =>   string(1)“5”   [ “团队”] =>   string(8)“黑豹”   [ “注释”] =>   string(0)“”   [ “变化”] =>   string(1)“0”   [ “记录”] =>   string(5)“0-0-0”   [ “低”] =>   string(1)“5”   [ “高”] =>   string(1)“5” } 数组转储:

查询选择团队:SELECT * FROM powerrankings WHERE team ='Bills'

队:法案 旧职级:0 新排名:2

NULL 数组转储:

查询选择团队:SELECT * FROM powerrankings WHERE team ='Falcons'

队:猎鹰 旧职级:0 新排名:3

NULL 数组转储:

选择团队的查询:SELECT * FROM powerrankings WHERE team ='Cardinals'

队:红雀 旧职级:0 新排名:4

NULL 数组转储:

查询选择团队:SELECT * FROM powerrankings WHERE team ='Ravens'

队:掠夺 旧职级:0 新排名:5

NULL 数组转储:

查询选择团队:SELECT * FROM powerrankings WHERE team ='Bears'

队:熊 老排名:6 新排名:6

array(7){   [ “排名”] =>   string(1)“6”   [ “团队”] =>   string(5)“Bears”   [ “注释”] =>   string(0)“”   [ “变化”] =>   string(1)“0”   [ “记录”] =>   string(5)“0-0-0”   [ “低”] =>   string(1)“6”   [ “高”] =>   string(1)“6” }

a你可以看到它有时会起作用,有时却看不到。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

NULL表示您没有匹配的行查询:没有名为“Bills”的团队。

在更新排名

之前,请检查NULL的代码
if ($selected_team = $result->fetch_assoc()) {
    // update ranking
}