如果必须执行多个查询。有些参数重叠,有些则没有。
我想创建一个包含所有查询的所有参数数据的数组。
我想如果数组包含预处理语句没有的值,它会忽略它们但它给我这个错误:
参数编号无效:编号 绑定变量与数字不匹配 令牌
这就是我的意思:
$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);
有没有办法允许这个?或者每次都必须创建一个不同的数组?
答案 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();