2013-04-12 36 views
0

我是PDO的新手,實際上它有點複雜。以mySQL寬度結合多個bindParam PDO

是否possbile這些PARAMS

$stmt->bindParam(':firstname', $firstname, PDO::PARAM_STR); 
$stmt->bindParam(':lastname', $lastname, PDO::PARAM_STR); 
$stmt->bindParam(':telephone', $telephone, PDO::PARAM_STR); 
$stmt->bindParam(':fax', $fax, PDO::PARAM_STR); 
$stmt->bindParam(':mobile', $mobile, PDO::PARAM_STR); 
$stmt->execute(); 

結合起來,一個數組?它有意義還是應該保持原樣?既然你沒有使用任何花哨的參數類型應該做

$arr = array(); 
$arr[':firstname'] = $firstname; 
$arr[':lastname'] = $lastname; 
$arr[':telephone'] = $telephone; 
$arr[':fax'] = $fax; 
$arr[':mobile'] = $mobile; 
$stmt->execute($arr); 

+0

http://stackoverflow.com/tags/pdo/info。 –

+0

非常感謝您的提示。 – user1286819

回答

0

你可以在底部試試這個

  $stmt->execute(array(
         ':firstname' => $firstname, 
         ':lastname' => $lastname , 
         ':telephone' => $telephone, 
         ':fax' => $fax, 
         ':mobile' => $mobile 
          )); 
+0

它與我所建議的有什麼不同? – Sebas

+0

但是PDO :: PARAM_STR在哪裏? – user1286819

1

我記得有做過這樣的事情過去。


是的,我確認這是我正在做的,它的工作原理。見我的個人代碼的摘錄:

$sql = "INSERT INTO `tbl` (relid, `type`, `table`, `name`) VALUES (:PARAM1, :PARAM2, :PARAM3, :PARAM4)"; 

$stmt = $cn->prepare($sql); 

$arrQP = array(); 
$arrQP[":PARAM1"] = $key; 
$arrQP[":PARAM2"] = $arrRel[0]; 
$arrQP[":PARAM3"] = $arrRel[1]; 
$arrQP[":PARAM4"] = $arrRel[2]; 

$stmt->execute($arrQP); 
+0

你測試過了嗎? – Kermit

+0

對不起,從內存中。我現在沒有我的代碼,但我很確定它是/編輯的:是的,它被測試 – Sebas