数组具有比PDO准备语句更多的参数错误

时间:2010-08-25 20:25:05

标签: php pdo

如果必须执行多个查询。有些参数重叠,有些则没有。

我想创建一个包含所有查询的所有参数数据的数组。

我想如果数组包含预处理语句没有的值,它会忽略它们但它给我这个错误:

  

参数编号无效:编号   绑定变量与数字不匹配   令牌

这就是我的意思:

$data = array( 'a' => $a, 'b' => $b, 'c' => $c, 'd' => $d);

$data['e'] = "e";
$STH = $this->PDO->prepare("INSERT INTO table1 ( fieldA, fieldB, fieldE ) VALUES (:a, :b, :e )");
$STH->execute($data);

$data['f'] = "f";
$STH = $this->PDO->prepare("INSERT INTO table2 ( fieldA, fieldD, fieldF ) VALUES (:a, :d, :f )");
$STH->execute($data);

有没有办法允许这个?或者每次都必须创建一个不同的数组?

1 个答案:

答案 0 :(得分:0)

不,这不受支持。

顺便说一下,在维护方面,我总觉得使用bindParam方法会产生更易读的代码。像这样......

$STH = $this->PDO->prepare("INSERT INTO table1 ( fieldA, fieldB, fieldE ) VALUES (:a, :b, :e )");
$STH->bindParam(':a', 'a');
$STH->bindParam(':b', 'b');
$STH->bindParam(':e', 'e');
$STH->execute();