2016-01-19 107 views
3

PDO PARAM:PHP傳球達陣,以PDO bindParam

$cto=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password); 

與數據庫交互

$csql=$cto->prepare("INSERT INTO `users`(`username`, `password`, `class`, `is_on`, `time_log`, `IP`) 
     VALUES (:name,:pass,:class,0,0,'0')"); 
     $pr=[ 
      ':name' => $_POST['username'], 
      ":pass" => $_POST['password'], 
      ":class" => $_POST["class"], 
     ]; 
     $csql->execute($pr); 
     $cto=null; 

我的問題是,我目前正在使用數組$ PR的執行,可我通過這個數組使用bindParam

$csql->bindParam($pr); 
$csql->exec(); 

謝謝你的時間。

+2

no,as [' - > bindParam()'](http://php.net/manual/en/pdostatement.bindparam.php) - *將** a **參數綁定到指定的變量名稱*。另一種方法是循環執行。即。 'foreach($ pr as $ key => $ val){$ csql-> bindParam($ key,$ val);}' – Sean

回答

3

您可以在單獨使用bindParam()通過這種方式:

$csql=$cto->prepare("INSERT INTO `users`(`username`, `password`, `class`, `is_on`, `time_log`, `IP`) 
VALUES (:name,:pass,:class,0,0,'0')"); 

//Looping for all values into array... 
foreach ($pr as $key => &$val) { 
    $csql->bindParam($key, $val); 
} 
$csql->execute(); 

希望這會幫助你!