pdoのプリペアドステートメントで各変数をそのパラメータにバインドするという退屈さを取り除く作業コードがあります。私は$_POST
配列をループし、html形式の名前属性に基づいて変数をparamsに動的にバインドします。pdoのプリペアドステートメントのキー値のポスト配列からのループbindParam
私の質問は、これを行うのは安全ですか?私はSQLインジェクションを開いていますか?ここで
は私のコードです -
if(!empty($_POST)){
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("INSERT INTO planes (name, description) VALUES(:name, :description)");
foreach($_POST as $key => &$value){
$key = ':'.$key;
$stmt->bindParam($key, $value);
}
$stmt->execute();
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
}
私は役に立つ洞察に興味がありますか? –
私は、あなたが自分で書くのではなく、この機能を提供する多くのフレームワークのうちの1つを使うことができるということを意味しました。 – catbadger