服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

为PHP设置默认的MySQL连接字符集(在RHEL中)?

我们在运行Gentoo Linux的旧服务器上运行了一百个左右的传统PHP网站。 在build立这些网站时, latin1仍然是PHP和MySQL中常见的字符集。 为了确保那些较旧的站点默认使用latin1 ,同时仍允许较新的站点使用utf8 (我们当前的标准),我们在php.ini中设置默认的连接字符集: mysql.connect_charset = latin1 mysqli.connect_charset = latin1 pdo_mysql.connect_charset = latin1 具体的更现代的网站可以在自举代码中覆盖这个: <?php mysql_set_charset("utf8", $dsn ); …一切都很好。 现在服务器超负荷了,我们不再使用这个托pipe服务器了,所以我们把所有这些站点都转移到了我们的标准托pipe服务器上的一个更快的服务器上,这个服务器使用RHEL 5作为他们select的操作系统。 在设置这个新的服务器时,我惊奇地发现*.connect_charset指令是PHP的Gentoo特定补丁,而RHEL的PHP​​版本不能识别它们! 现在我该如何设置PHP连接到MySQL的拉丁文字符集? 我想在my.cnf中设置一个默认值,但不希望强制每个应用程序和客户端都默认为latin1。 我们的政策是使用utf8,我们只想限制例外PHP。 此外,转换每个遗留网站以正确使用utf8是不可行的,因为许多触摸和你打破了一种。 我们根本没有时间去解决所有问题。 我如何设置一个默认的mysql / mysqli / pdo_mysql连接字符集为latin1为PHP,而仍然允许个别脚本覆盖这与mysql_set_charset()utf8?