处理PHP PDO postgres中的布尔输入?

时间:2015-08-14 14:02:25

标签: php postgresql pdo

有没有更好的方法来处理PHP中 postgres PDO驱动程序的布尔输入?

在PHP PDO中,将布尔 false 转换为""和 true 到" 1"。这会在某些陈述中导致这样的错误:

00000 - 7 - ERROR:  invalid input syntax for type boolean: ""

我将我的变量传递给PDOStatement :: execute作为输入数组。

目前我正在使用此变通方法传递适当的字符串

':somevar'    => ($this->somevar === true ? 'true' : 'false')

有更好的方法吗?

我知道PDOStatement :: bindParam有明确的data_type。我想知道将params数组中的boolean传递给PDOStatement :: execute()的选项。

更新:添加了确切代码

$qparams = array(
    ':id'            => $this->id,
    ':somevar'       => ($this->somevar === true ? 'true' : 'false'),
    ':updated_on'    => $timestamp
);

$sql = 'UPDATE ' . SONG_ARTISTS . ' SET ' .
    'id = :id, ' .
    'somevar = :somevar, ' .
    'updated_on = :updated_on ' .
    ' WHERE ' .
    ' id = :id';

$stmt = $pdo_handle->prepare($sql);
$result = $stmt->execute($params);

0 个答案:

没有答案