0

以下是我对准备语句的尝试。它导致页面此刻死掉,所以显然出了点问题。

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 =?。故意删除最后一个逗号。

如果回显看起来像,则与 $outputs 的原理相同benjamin,socialist

错误报告不显示

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

2 回答 2

1

$outputs包含一个逗号分隔的字符串,但execute()希望参数作为数组元素传递。因此,您必须将字符串分开:

$q->execute(explode(',', "$outputs,$elector"));
于 2012-07-02T16:24:38.937 回答
0

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

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

?在你的sql中只有一个,数组元素的数量需要与它们出现的顺序的问号数量相匹配

于 2012-07-02T16:15:01.783 回答