php - 在不绑定(bind)的情况下使用 PDO

标签 php mysql pdo sanitization

$stmt = $conn->prepare('SELECT * FROM users WHERE user_id = :user_id');

$stmt->execute(array(':user_id' => $_GET['user_id']));

$result = $stmt->fetchAll(PDO::FETCH_OBJ);

我正在像那样使用 PDO,我需要清理 GET 参数吗?

我知道如果我执行 $stmt->bindParam(':user_id', $_GET['user_id'], PDO::PARAM_INT); 这不是问题。但是我的方式安全吗?

最佳答案

是的,这是安全的。 executebind* 之间的唯一区别是:

  • execute 一次接受多个参数,而您必须单独bind*每个参数
  • bind* 允许您指定参数类型,而 execute 将所有内容绑定(bind)为字符串

将参数传递给execute主要是一种方便的速记,它仍然是安全的。

关于php - 在不绑定(bind)的情况下使用 PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21110329/

相关文章:

php - 数组值字符串编辑和循环与其他数组和循环相结合

php - 即使 postman 做对了,测试也无法正确断言请求

关于count的mysql查询问题

PHP:(PDO)Mysql添加字符串以从数据库返回值的最有效方法

php - 如果我在 DEFAULT_FETCH_MODE 连接中设置为默认值,是否需要使用 PDO::FETCH_ASSOC?

php - codeigniter 获取所有声明的路由

php - Cron 作业未通过 PHP 脚本运行

MySQL : How to make between as fast as equal?

mysql - 如何在此查询上进行内部联接

php - 使用 php mysql 更新 PDO 数组