PDO查询中两个参数紧挨着?

时间:2012-07-21 17:28:20

标签: php mysql pdo

我遇到了一个问题。当我使用PDO :: prepare()构建某个查询,然后传递参数来执行时,查询将正确执行,但其中一个参数似乎没有插入到数据库中。准备语句如下所示:

... SET col = :par1-:par2 ...

所以我要做的就是将值“[par1] - [par2]”放入数据库的列中。问题是第一个参数没有存储在数据库中,但破折号和第二个参数是。因此,从上面的查询中存储在数据库中的结果值是“ - [par2]”。

为什么会这样?

1 个答案:

答案 0 :(得分:6)

你写的是整数减法。因此,您要将par1减去par2的结果写入col

相反,您应该在PDO之外创建字符串$par1 . '-' . $par2,然后通过其他一些命名参数传递它:

$stmt = $pdo->prepare('... SET col = :col');
$stmt->execute(['col' => $par1 . '-' . $par2]);