PHP 7 / 8 使用 PDO 连接 PGSQL (PostgreSQL) 方法
1. PHP PDO 使用的 PostgreSQL 版本不能过高。
经测试,PHP 8.0.25 / 8.1.12 的 PDO,PostgreSQL 11~13 可以正常连接,14、15及以上版本无法正常连接。连接前需要确认自己安装的PostgreSQL版本是否受PDO支持。
2. Windows 下,Local 设置为默认,则会使用gbk编码。
如果没有中文排序等需求,可选择:C 并安装;
如果已安装默认,可修改:
在DATA目录中,找到并打开:postgresql.conf
修改参数:
lc_messages = 'UTF8'
lc_messages = 'chinese-simplified_china.936 UTF-8' # locale for system error message
lc_monetary = 'Chinese (Simplified)_China.936 UTF8' # locale for monetary formatting
lc_numeric = 'Chinese (Simplified)_China.936 UTF8' # locale for number formatting
lc_time = 'Chinese (Simplified)_China.936 UTF8' # locale for time formatting
#重启数据库服务后生效
3. 连接:
$sConn = 'pgsql:host=localhost;port=5432;dbname=dbName';
$connect = new PDO($sConn, username, password);
$connect->exec('set client_encoding = utf8;'); //效果并不明显,如果未进行第2步操作,则设置为gbk,报错时就显示为中文而非乱码,当然也可能引发其它问题
... ...
  • 真诚Empressment
  • 高效Efficiency
  • 进取Enterprise
WEIXIN
PHONE
CALL
QQ
TOP
X