2011-12-29 217 views
0

我想創建一個函數,它將構建它自己的PDO風格的查詢。 問題是我需要創建變量變量名稱。變量變量名稱

我有一個函數insert_Query

public function insert_Query($data, $table){ 

的數據是一個ASSOC陣列和表說明了它自己。

當處於PDO風格的查詢是好的,你可以準備它。 這是一切都很好,但比我需要binParam函數來設置數組中的值到變量。 由於bindParam函數不像數組,它必須用新變量完成。

問題我該如何生成變量和名稱,並用數據填充它們。

我媒體鏈接試過如下:

 foreach($data as $k=>$v){ 
      $k = 'var'.$i; 
      $$k = $v; 
      $i++; 
     } 

,是的它的工作原理和我得到的變量名,但如何坤我約束力。 因爲我仍然需要bindParam函數的變量。

有沒有辦法用PHP來生成這些代碼行?

如果有任何問題讓我知道。

回答

1

爲什麼不將數組傳遞給execute方法?或使用bindValue

$stmt = $pdo -> prepare('INSERT INTO table SET k1=:v1, k2=:v2'); 
$stmt -> execute(array(
    'v1' => $v1, 
    'v2' => $v2, 
)); 

$stmt = $pdo -> prepare('INSERT INTO table SET k1=:v1, k2=:v2'); 
$stmt -> bindValue('v1', $v1); 
$stmt -> bindValue('v2', $v2); 
$stmt -> execute(); 
+0

*免責聲明:它已經有一段時間,因爲我使用的PDO。這只是爲了給出一個使用它的想法,而不是複製/粘貼代碼。* – 2011-12-29 13:11:18

+0

謝謝。我不知道你可以傳遞一個數組到執行。現在就試試吧:) – Controvi 2011-12-29 13:13:24