选择查询缓慢更新

时间:2014-05-09 10:31:35

标签: php mysql sql

这可能是一个简单的错误,但我很难过......

我有一个数据库,在Chrome扩展程序上使用AJAX插入条目,效果很好,可以立即插入。

我有一个单独的PHP文件,用于输出表中的条目数。这可行,但是在调用时,条目需要很长时间才能更新为正确的数字。我需要它立即更新。

当表本身即时更新时,是否有任何理由要求查询输出正确的数字这么长时间?

<?php
$link = mysqli_connect("localhost", "root", "", "fyp");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
if ($result = mysqli_query($link, "SELECT * FROM links")) {

    $row_cnt = mysqli_num_rows($result);

    printf($row_cnt);

    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

感谢。

2 个答案:

答案 0 :(得分:0)

我认为你应该简单地运行:

if ($result = mysqli_query($link, "SELECT count(*) AS `nr` FROM links")) {

    $row_cnt = mysqli_fetch_assoc($result);

    printf($row_cnt['nr']);

    mysqli_free_result($result);
}

这将是最好的一个。或者,如果您的链接完全没有删除,则可以运行:

if ($result = mysqli_query($link, "SELECT id FROM links ORDER BY id DESC LIMIT 1")) {

    $row_cnt = mysqli_fetch_assoc($result);

    printf($row_cnt['id']);

    mysqli_free_result($result);
}

答案 1 :(得分:0)

使用聚合查询将处理移交给数据库,并使用mysqli_result返回标量结果:

if ($result = mysqli_query($link, "SELECT COUNT(1) FROM links")) {
    $row_cnt = mysqli_result($result, 0);
    printf($row_cnt);
    mysqli_free_result($result);
}