PHP:准备好的陈述

时间:2015-04-20 15:31:25

标签: php mysql prepared-statement

我正在制作一个处理我所制作的应用程序的在线高分榜的网站。该站点已经启动并运行,使用预准备语句从用户应用程序插入名称和分数。但是,在使用预准备语句从数据库中获取数据时,我遇到了一个问题。这是我获取显示的代码:

$display = $db->prepare("SELECT * FROM highscores ORDER BY score DESC");
$display->execute();
$result = $display->get_result();
$i = 1;

while ( $row = mysqli_fetch_array($result) ) {
    if ($i % 2 != 0) {
        echo "<div id = 'odd'>";
        echo "<div id = 'l'>" . $i . "</div>";
        echo "<div id = 'r'>" . $row['score'] . "</div>";
        echo "<div id = 'c'>" . $row['name'] . "</div>";
        echo "</div>";
    }
    else {
        echo "<div id = 'even'>";
        echo "<div id = 'l'>" . $i . "</div>";
        echo "<div id = 'r'>" . $row['score'] . "</div>";
        echo "<div id = 'c'>" . $row['name'] . "</div>";
        echo "</div>";
    }
    $i++;
}

$display->close();
$db->close();

这在我用于测试的本地服务器上运行正常。但是,我无法使用此功能,因为get_result()仅适用于我的网站服务器不支持的mysqlnd。如果有人能指出我正确的方向,或者就此事给我一些建议,我会很高兴。

在这种情况下是否甚至需要使用预准备语句?

1 个答案:

答案 0 :(得分:2)

回答你的问题:“在这种情况下是否甚至需要使用准备好的声明?”

答案是否定的。除非您的查询来自SELECT上的用户输入,否则您无需进行准备;只需使用标准查询。

另外,正如我在评论中所述,请参阅以下有关使用get_result()的替代方法的答案。

以下是PHP mysqli的准备语句链接: