使用mysqli准备好的语句/只使用mysqli获取数组更快


Whis is faster - fetching array with mysqli prepared statement/with mysqli only

哪个更快?

使用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();

EDIT: 只使用准备好的语句,因为正常的查询是不安全的!不要担心性能,要担心安全!

EDIT2: 最近我开始使用PDO代替MySQLi。PDO在很多方面都比MySQLi扩展好。

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

在你方的特殊情况下,即使存在差异,也很难察觉。
所以,你应该关注的是它的合理设计,而不是想象中的"性能问题"。

两者之间的性能应该微不足道。然而,你不应该担心这个。你准备好的语句更安全。

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