0

哪个更快?使用 mysqli 准备好的语句获取数组:

    $statement=$mysqli->prepare("SELECT `name`,`age` FROM `users` WHERE `id`=?");
    $statement->bind_param('i',$id);
    $statement->execute();
    $statement->bind_result($array['0'],$array['1']);
    $statement->fetch();
    return $array;

或仅使用 mysqli 获取数组:

return $mysqli->query("SELECT `name`,`age`FROM `users` WHERE `id`='".$id."'")->fetch_row();

编辑:只使用准备好的语句,因为普通查询是不安全的!不用担心性能 - 担心安全!

EDIT2:最近我开始使用 PDO 而不是 MySQLi。PDO 在很多方面都优于 MySQLi 扩展。其中之一是通过多维数组获取和循环。

4

2 回答 2

2

两者之间的性能应该是微不足道的。但是,您不应该担心这一点。您准备好的声明更加安全。

$id如果来自任何用户输入(查询字符串、表单等),您的直接查询将允许所谓的 SQL 注入攻击。

于 2013-01-01T15:12:38.183 回答
2

有一个严格的规则:只有在你有充分理由的情况下才会用性能问题来打扰自己。
否则你要么只是浪费你的时间,甚至让事情变得更糟。

在您的特定情况下,即使存在差异,也几乎不会引起注意。
所以,它的正确设计应该是你关心的,而不是可以想象的“性能问题”。

于 2013-01-01T15:14:41.757 回答