2011-12-29 219 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