我只是想知道这两组代码是否做同样的事情,如果不是有什么区别?
$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();
======================= AND ======================= =
$connect= new CONNECT();
$sql = ("query here");
$stmt = $connect->runQuery($sql);
$stmt->execute(Array(
':sample1' => $_POST['sample'],
':sample2' => $_POST['sample2'],
':sample3' => $_POST['sample3']
));
仅供参考,两者都很完美,只是想知道我是否使用其中任何一个获得全部安全性好处。感谢。
答案 0 :(得分:5)
通过将参数与$stmt->execute()
方法一起传递,数组中的所有值都作为PDO::PARAM_STR
传递给具有$stmt->bindParam()
函数的语句。
使用$stmt->bindParam()
函数,您可以使用PDO::PARAM_*
详细了解PDO::PARAM_