PHP PDO准备更新声明

时间:2012-07-02 16:04:31

标签: php mysql pdo

以下是我在准备声明中的尝试。它导致页面在此刻死亡,显然出现了问题。

function telephoneinsert($elector,$inputs,$outputs){
            global $dbh;
            $sql = "UPDATE electors SET $inputs WHERE ID=?";
            $q = $dbh->prepare($sql);
            $q->execute(array($outputs,$elector));
            //UPDATE STATS
        }

这是像这样在页面上调用的函数

telephoneinsert($Ielector,$inputs,$outputs);

其中$ inputs =一个已发布的数组,如果回显,则显示为name = ?, type =?。故意rtrim'd摆脱最后一个逗号。

如果echo显示为benjamin,socialist

,则与$ outputs相同的原则

错误报告显示没有

$this->pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
        print_r($dbh->errorInfo());

2 个答案:

答案 0 :(得分:1)

$outputs包含以逗号分隔的字符串,但execute()要求将参数作为数组元素传递。因此,您必须拆分字符串:

$q->execute(explode(',', "$outputs,$elector"));

答案 1 :(得分:0)

在你的数组中,你有2个元素

$q->execute(array($outputs,$elector));

但是你的sql中只有一个?,数组元素的数量需要按顺序匹配问号的数量