我想知道我是否应该为简单的选择查询使用预准备语句?
如:
`SELECT * FROM `table_name`
有了这个,这样做不是更好:
$db->query('SELECT * FROM `table_name`');
答案 0 :(得分:1)
如果查询只运行一次(每个脚本)和,确实没有变量,无论你使用它确实没有多大区别准备好的陈述或一次性查询。
答案 1 :(得分:1)
@deceze是对的。但如果你想使用预备语句,请使用类似的东西,
<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) // <== passed array of parameters
{
while ($row = $stmt->fetch())
{
print_r($row);
}
}
?>
答案 2 :(得分:0)
据我认为这不是必须的,但是你最好为代码的完整性做这件事。这个简单的选择查询(没有分配)将无法攻击。
答案 3 :(得分:0)
使用预准备语句而不是像这样的直接查询的性能损失实际上是不存在的,因为你以任何一种方式打开连接,并且执行的额外调用是在同一个连接上。
如果您打算从表格中仅选择某些字段,则使用*进行选择可能与性能损失一样糟糕。