2017-03-01 61 views
-1

我試圖將數組內容添加到數據庫。對此,我正在使用將數組插入數據庫與PDO的最佳做法

$arr = ["10","11","12","13"]; 

foreach ($arr as $value) { 
    $sql = "INSERT INTO `test` (user_id, view) VALUES (:user_id, :view)"; 
    $stmt = $this->conn->prepare($sql); 
    $stmt->bindParam(':user_id', $value); 
    $stmt->bindParam(':view', 'small'); 
    $stmt->execute(); 
} 

這是好的做法還是壞的?有沒有其他好方法?

+2

準備[在單個查詢PDO製備插入多行]的__once__ –

+0

可能的複製(http://stackoverflow.com/questions/1176352/pdo-prepared-插入-多行輸入單查詢) – hassan

回答

6

適當的例子是這樣的:

$arr = ["10","11","12","13"]; 

$sql = "INSERT INTO `test` (`user_id`, `view`) VALUES (:user_id, :view)"; 
$stmt = $this->conn->prepare($sql); 

foreach ($arr as $value) { 
    $stmt->execute(array('user_id' => $value, 'view' => 'small')); 
} 
3

,您可以隨時與​​數組:

$stmt->execute(array('user_id' => $value, 'view' => 'small')); 

這通常最大限度地減少你的代碼,它也可以讓你通過if條款爲您建立一個查詢,而無需複雜的代碼中積累的數據。

同樣@u_mulder指出,您只需要prepare您的查詢一次,因爲它不會通過該循環的每次迭代更改。

相關問題