我们在 PHP/MySQL 中的应用程序使用 PDO 准备好的语句来插入用户的数据,而无需任何清理。后期用户可以复制创建的条目,一次可复制数千个。
对于复制部分,我们已经测试过:
$stmt = $pdo->prepare("INSERT INTO files (`a`,`b`,`c`) VALUES (?,?,?)");
$pdo->beginTransaction();
foreach ($data as $row) {
$stmt->execute($row);
}
$pdo->commit();
对比
$pdo->exec("INSERT INTO files (`a`,`b`,`c`) VALUES . implode(', ', $loop_query));
$row 表示数据库中的行。 第一个比第二个慢 3 倍。我们想实现第二种方法。
在没有准备好的语句的情况下使用数据库中的数据有多安全?
最佳答案
这不安全。正如您所提到的,数据库上的数据是原始的。
如果您将其检索到编程语言(在本例中为 php)并在 sql 语句中再次使用,则必须再次对其进行保护以防止 sql 注入(inject)。
您不能改为插入(字段)选择值
吗?
关于php - 我需要清理数据库查询的结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22067740/