传递数据类型和执行没有它们的数组之间的区别

Joh*_*tin 5 php mysql pdo

我只是想知道这两组代码是否做同样的事情,如果不是有什么区别?

$connect= new CONNECT();
$sql = ("query here");
$stmt = $connect->runQuery($sql);               
$stmt->bindParam(':sample', $_POST['sample'], PDO::PARAM_STR);
$stmt->bindParam(':sample2', $_POST['sample2'], PDO::PARAM_STR);
$stmt->bindParam(':sample3', $_POST['sample3'], PDO::PARAM_STR);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)

=======================和========================

$connect= new CONNECT();
$sql = ("query here");
$stmt = $connect->runQuery($sql);   
$stmt->execute(Array(
                    ':sample1'      =>  $_POST['sample'],
                    ':sample2'      =>  $_POST['sample2'],
                    ':sample3'      =>  $_POST['sample3']
                    ));
Run Code Online (Sandbox Code Playgroud)

仅供参考,两者都很完美,只是想知道我是否使用其中任何一个获得全部安全性好处.谢谢.

Sat*_*aty 5

通过将参数与$stmt->execute()方法一起传递,可以传递数组中的所有值,以及PDO::PARAM_STR具有该$stmt->bindParam()函数的语句.

使用该$stmt->bindParam()函数,您可以使用.来定义传递的数据类型PDO::PARAM_*

了解有关PDO :: PARAM_的更多信息