php - 我需要清理数据库查询的结果吗?

标签 php mysql pdo

我们在 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/

相关文章:

php - 如何在 Codeigniter 查询中找到非 ASCII 字符?

c# - 根据绑定(bind)值更改 ListView 图像

php - 如何嵌套 2 个带有 foreach 循环的 SQL 语句

php - 使用 php 将与其复选框相对应的预测插入到我的 sql 数据库中

php - 上传到数据库失败

php - 防止从php输入时mysql数据库中的数据重复

mysql - 我在使用 PDO 连接到 godaddy 上的数据库时遇到问题

javascript - 试图在单击时获取链接以在 div 中显示数据?

php - laravel 5邮件发送的Gmail设置

mysql - fatal error : Uncaught PDOException: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected