繁体   English   中英

选择查询缓慢更新

[英]Select query slow to update

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

我有一个数据库,其中包含在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);
?>

谢谢。

我认为您应该简单运行:

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);
}

通过使用聚合查询将处理mysqli_result给数据库,并使用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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM