php - DB2如何使用PDO指定连接字符集

标签 php mysql pdo db2

我正在寻找以下(并且有效)MySQL 查询的 DB2 翻译:

SET NAMES 'UTF8'

我已经使用 PDO_ODBC 连接到 DB2,并且可以成功查询它,因此这不是连接问题。

驱动程序说NAMES是一个意外的标记,所以我猜还有另一种方法来指定连接字符集。

我搜索过 stackoverflow,但大多数答案都是针对 mysql 驱动程序的,而且我不知道在 IBM 文档中搜索什么(这不是最容易导航的)

我正在寻找的是 DB2 可以接受的 SQL 查询,它具有与 MySQL 的 SET NAMES xxx 相同的效果

最佳答案

DB2 中没有等效的语句。

DB2 客户端应用程序使用标准操作系统区域设置运行。在 UNIX/Linux 上,这是通过 LANG 环境变量(可以用各种 LC_* 环境变量覆盖)来设置的,在 Windows 上,这是使用控制面板进行配置的。

在使用 PHP 的 Linux/UNIX 上,这意味着您需要在 Web 服务器启动时设置正确的区域设置环境变量。

注释:

  • DB2 提供了使用 DB2CODEPAGE 注册表变量覆盖任何操作系统或环境级别设置的选项。此设置位于 DB2 客户端实例级别,因此它将影响使用您安装的 DB2 客户端连接的任何/所有应用程序。

  • 如果由 LOCALE 确定的客户端应用程序代码页与数据库代码页不同,请注意 DB2 客户端将在客户端代码页和数据库代码页之间双向执行代码页转换.

关于php - DB2如何使用PDO指定连接字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27153521/

相关文章:

php - Medoo php sql - 更改搜索词

php - 添加了事件颜色错误 PHP MySQL

php - PDO 语句返回 false

php - PDO 准备语句中的参数编号无效

php - 什么是 HTTP 严格传输安全 (HSTS) (Apache)?

php - 从查询构建数组以计算总时间

mysql - 更新表值时执行日期算术

php - 奇怪的行为 Laravel Homestead 数据库连接

mysql - 有没有办法优化这个mysql查询(更新,多重连接)?

php - PDO 绑定(bind)参数不起作用