哪个更快?
使用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
来自任何用户输入-查询字符串,表单等