MySQL Query的奇怪行为

时间:2014-01-12 22:53:51

标签: php mysql

以下代码运行正常,但在第二次MySQL查询之后,脚本似乎已停止输出HTML,尽管我没有错误。然而,计数器运行良好,我已经确定了问题(这是与while循环)。我知道这是因为“你好?”字符串不输出。有任何想法吗?提前谢谢。

$db = new MySQLConnect();
$db->query("SELECT * FROM links;");
$db->run();

while ($row = $db->row()->fetch()) {
    $id    = $row["id"];
    $count = $row["count"];
    $count = $count + 1;

    var_dump($id);
    var_dump($_GET["id"]);

    if ($id == $_GET["id"]) {
        try {
            $db->query("UPDATE links SET count=count + 1 WHERE id=$id;");
            $db->run();
        } catch(Exception $e) {
            echo $e->getMessage();
        }
    }         
    print_r($id . ": " . $count);
}
echo "Hello?";

1 个答案:

答案 0 :(得分:1)

正如上面评论中提到的那样,你要覆盖结果集。我没有测试,但应该按预期工作。

$db = new MySQLConnect();
$db->query("SELECT * FROM links;");
$db->run();

while ($row = $db->row()->fetch()) {
    $id    = $row["id"];
    $count = $row["count"];
    $count = $count + 1;

    var_dump($id);
    var_dump($_GET["id"]);

    if ($id == $_GET["id"]) {
        try {
            $stmt = new MySQLConnect();
            $stmt->query("UPDATE links SET count=count + 1 WHERE id=$id;");
            $stmt->run();
        } catch(Exception $e) {
            echo $e->getMessage();
        }
    }         
    print_r($id . ": " . $count);
}
echo "Hello?";