gpt4 book ai didi

php - 准备好的语句和 mysqli_query 之间有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 01:06:58 26 4
gpt4 key购买 nike

我读过一本关于 PHP 和 MySQL 的书。准备好的语句使用二进制协议(protocol),但 mysqli 缺少此功能。我还读到可以缓存准备好的语句(它们的执行计划)并且比 mysqli_query 更快,当然更安全?我们什么时候应该使用准备好的语句,什么时候使用 mysqli_query?

编辑
假设我有以下查询:

echo "<table>";  
echo "<tr class ='tablehead'><td>Name</td><td>Location</td><td>Review</td><td>Image</td> <td>Thumb</td></tr>";
while ($row = mysql_fetch_array($query))
{
echo "<tr>";
echo "<td>" . $row['user_fname'] . "</td>";
echo "<td>" . $row['user_location'] . "</td>";
echo "<td>" . $row['user_review'] . "</td>";
echo "<td>" . $row['user_image'] . "</td>";
echo "<td>" . $row['user_thumb'] . "</td>";
echo "</tr>";
}
echo "</table>";

哪种方法最好?

最佳答案

准备好的语句有一些优点,其中一个重要的优点是可以更安全地防止 SQL 注入(inject)错误。我认为这是他们最大的优势。

关于性能,必须考虑 SQL 解析、查询计划创建和结果获取阶段的成本与查询执行的成本:如果后者的 I/O 占主导地位(通常如此),您将获得来自准备好的 staements 或 mysqli 的很少。

对于简单的重复查询——通常用于 webapps 的简单部分——MySQL 查询缓存适用于具有完全相同且完整的 SQL 文本的查询,因此准备好的查询将不会使用它.根据我的经验,这不仅会抵消准备好的查询的任何性能优势。

关于php - 准备好的语句和 mysqli_query 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8645226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com