我是否需要清理数据库查询的结果?

时间:2014-02-27 11:53:43

标签: php mysql pdo

我们在PHP / MySQL中的应用程序使用PDO预处理语句从用户插入数据而不进行任何清理。在后期阶段,用户可以复制创建的条目,当时为1000个。

对于我们测试的复制部分:

$stmt = $pdo->prepare("INSERT INTO files (`a`,`b`,`c`) VALUES (?,?,?)");
$pdo->beginTransaction();
foreach ($data as $row) {
    $stmt->execute($row);
}
$pdo->commit();

VS

$pdo->exec("INSERT INTO files (`a`,`b`,`c`) VALUES . implode(', ', $loop_query));

$ row表示数据库中的行。 第一个比第二个慢3倍。我们想实施第二种方法。

没有预先准备好的陈述,使用数据库中的数据有多安全?

2 个答案:

答案 0 :(得分:1)

这不安全。正如您所提到的,DB上的数据是原始的。

如果您将其检索到编程语言(在本例中为php)并在sql语句中再次使用,则必须再次针对sql注入保护它。

你不能做insert (fields) select values吗?

答案 1 :(得分:0)

根本不安全。完全。