有没有更好的方法来处理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);