PHP:准备好的语句

PHP: Prepared statements

我正在制作一个网站来处理我制作的应用程序的在线高分列表。该站点已基本正常运行 运行,使用准备好的语句从用户应用程序中插入姓名和分数。但是当涉及到使用准备好的语句从数据库中获取数据时,我遇到了一个问题。这是我获取显示的代码:

$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。如果有人能指出我正确的方向或就此事给我一些建议,我将非常高兴。

在这种情况下甚至有必要使用准备好的语句吗?

回答你的问题:"Is it even necessary to use a prepared statement in this scenario?"

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

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

这是一个 link 到 PHP 的 mysqli 和准备好的语句: