0
所以我一直在尋找到PDO來取代我的PHP所有的MySQL查詢。我這樣做的主要原因是安全性和編碼方便。就安全而言,我只是想知道。一旦我完成替換任何mysql查詢調用以及從PDO用戶捕獲的任何數據,我應該考慮將準備和執行查詢放在什麼位置?或者會照顧安全。我想我只是不明白PDO的安全性。這裏是我的一些獲取用戶輸入然後將其放入數據庫的代碼示例。這有什麼問題嗎?或者我可以做的改進?
<?php
session_start();
include("dbgear.php");
$var1 = $_POST['stuff1'];
$var2 = $_POST['stuff2'];
$var3 = $_POST['stuff3'];
$var4 = $_POST['stuff4'];
$var5 = $_SESSION['stuff5'];
$vardate = date("M d, Y h:i A");
$info = "INSERT INTO comments SET name=:user,class=:class,comment=:commentarea,date=:date,detector=:detector";
$send = $connect->prepare($info);
$send->execute(array(':user'=>$var1,':class'=>$var2,':commentarea'=>$var3,':date'=>$var4,':detector'=>$var5));
?>
安全性(實際上是一種副產品)來自SQL命令從數據值分別發送到服務器,不會發生字符串插值。在真正準備好的語句模式中,也就是說。在PDO仿真模式下, - > execute將簡單地轉義原始值。這就是爲什麼你不必打擾。 (關於值。與動態標識符或變體查詢不同[...](http://stackoverflow.com/a/8255054/345031)) – mario