PDO带有命名参数的参数号无效?

时间:2013-12-06 20:17:17

标签: php pdo

修改 正如有人在下面指出的,这是一个错字,请忽略这一点,完整的用户错误


我觉得这有点奇怪,我的印象是:param可以多次使用?

类别:

Final Class StageMapper Extends DataMapper
{
    public static function push($vendor)
    {
        $st = self::$db->prepare(
            'UPDATE footable SET site = :site, hash = :hash WHERE site = :site AND id = :id'
        );

        $st->execute(array(
            ':site'         => $vendor->s,
            ':hash'         => $vendor->h,
            ':uid'          => $vendor->i,
        ));
    }
}

输入:

// some rand vals
$vendor = (object) array (
  's'   => 'domain.com',
  'h'   => '180b35',
  'i'   => '1',
);

DataMapper::init();          // kick off a new connection via PDO
StageMapper::push($vendor);  // do stuff =P

似乎有点奇怪,因为我们已经开始:site(这是我认为扔掉它)所以它会引发我的错误

有人可以向我解释我的绑定参数是怎么回事吗?

2 个答案:

答案 0 :(得分:2)

有一个错字。 :uid binding,:id marker。

答案 1 :(得分:0)

如果使用模拟准备,则可以多次使用命名参数。如果你使用“真实”准备,你就不能。