Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用不带绑定的PDO_Php_Mysql_Pdo_Sanitization - Fatal编程技术网

Php 使用不带绑定的PDO

Php 使用不带绑定的PDO,php,mysql,pdo,sanitization,Php,Mysql,Pdo,Sanitization,我像那样使用PDO,我需要清理GET参数吗 我知道如果我做了$stmt->bindParam(':user\u id',$\u GET['user\u id',PDO::PARAM\u INT))比这不是问题。但是我的路安全吗?是的,很安全。execute和bind*之间的唯一区别是: execute一次接受多个参数,而您必须单独绑定每个参数 bind*允许您指定参数类型,而execute将所有内容绑定为字符串 将参数传递给execute主要是一种方便的速记,它仍然是安全的 $stmt =

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


我知道如果我做了
$stmt->bindParam(':user\u id',$\u GET['user\u id',PDO::PARAM\u INT))比这不是问题。但是我的路安全吗?

是的,很安全。
execute
bind*
之间的唯一区别是:

  • execute
    一次接受多个参数,而您必须单独绑定每个参数
  • bind*
    允许您指定参数类型,而
    execute
    将所有内容绑定为字符串
将参数传递给
execute
主要是一种方便的速记,它仍然是安全的

$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);