【发布时间】:2018-08-10 17:19:54
【问题描述】:
我想执行一个查询以从我的数据库中的 1000 行中获取数据。我找到了两种方法来做到这一点。
方法一:
SELECT * FROM user WHERE id=879
我用来保护自己免受 SQL 注入的第二个是:
方法二:
<?php
$q="SELECT * FROM user";
$get_res=$dbconn->query($q);
while($set=$get_res->fetch_assoc()) {
if($set['id']==879)
{
//Some task here
}
}
那么哪个更快。我知道SQLprepared Statement..但我只是想比较这两种方法..如果Method2中存在任何安全漏洞,那么请解释一下..
【问题讨论】:
-
方法 2 效率极低。你已经在使用 MySQLi 那么为什么不绑定参数呢?查看stackoverflow.com/a/60496/2191572 的第一个示例
-
方法 1 会快很多。使用准备好的语句来绑定 ID。应该没问题,因为您已经熟悉准备好的语句,
-
当然 MySQL 在查询方面会更快......这就是 RDBM 背后的全部目的......