2011-12-29 8 views
0

PDOスタイルで独自のクエリを作成する関数を作成しようとしています。 問題は、変数の変数名を作成する必要があることです。変数名

I関数insert_Query

public function insert_Query($data, $table){ 

データが連想配列とテーブルがそれ自身のために語っている持っています。

PDOスタイルの場合、クエリは大丈夫です。あなたはそれを準備できます。 それはすべて良いですが、配列から変数に値を設定するbinParam関数が必要です。 bindParam関数は配列が好きではないので、新しい変数を使って行う必要があります。

質問どのように変数を生成し、そこに名前をつけてデータで埋めるのですか?

私が出回っ以下を試してみました:

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

そして、ええ、それは動作し、私は変数名が、どのようくん、私はそれらをバインドを取得します。 私はまだ変数がbindParam関数をinsiteする必要があるので。

これらのコード行を生成する方法はありますか?

質問がありましたらお知らせください。

答えて

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を使用するので、それはしばらくしています。これは、コピー/ペーストコードとしてではなく、その使用についてのアイデアを与えることを意図したものです。* –

+0

ありがとうございます。私はあなたが実行に配列を渡すことができるか分からなかった。今それを試してみる:) – Controvi