我正在将二进制数据写入UTF8数据库中的BYTEA
字段。
当我通过PHP/PDO预处理语句运行查询时,我得到错误:
FATAL: SQLSTATE[22021]: Character not in repertoire: 7 ERROR: invalid byte sequence for encoding "UTF8": 0x98
知道为什么它处理二进制数据,如果它应该是utf8编码?
找到了,解决方案是PG不允许二进制数据作为常规'字符串'值传递,它必须被视为一个特殊的'大对象'。
$stmt->bindValue(1, $field_data, PDO::PARAM_LOB);