带有 pdo 的未定义类常量“MYSQL_ATTR_INIT_COMMAND"

2021-12-26 00:00:00 php pdo
$db = new PDO('mysql:dbname=xnews;host=localhost;port=' . $LOCAL_DB_PORT, 
          $LOCAL_DB_USER, 
          $LOCAL_DB_PASS, 
          array(PDO::MYSQL_ATTR_INIT_COMMAND =>  "SET NAMES 'UTF8'")
      );

报告:

未定义的类常量'MYSQL_ATTR_INIT_COMMAND'

Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

改名了吗?

推荐答案

我刚刚遇到了同样的错误(使用 PHP 5.2.6),我所要做的就是 启用特定于 MySQL 的 PDO 驱动程序:

I just had the same error (with PHP 5.2.6), and all I had to do is enable the MySQL-specific PDO driver:

在您的 php.ini 文件中,您应该有以下行(未注释):

In your php.ini file, you should have the following line (uncommented):

  • extension=php_pdo_mysql.dll 在 Windows 上
  • extension=php_pdo_mysql.so 在 Linux/Mac 上
  • extension=php_pdo_mysql.dll on Windows
  • extension=php_pdo_mysql.so on Linux/Mac
  1. 在文本编辑器中打开php.ini

  • 例如它在 Windows 上的默认路径:C:Program Files (x86)PHPv5.Xphp.ini(用您安装的版本替换 v5.x)或 C:Windowsphp.ini
  • 或在 Linux 上:/etc/php5/apache2/php.ini(例如这是 Ubuntu 上的路径)或 /etc/php5/cli/php.ini/etc/php5/cgi/php.ini
  • 或你可以这样了解它在哪里:
    • php --ini |在 Windows 命令提示符下查找/i Loaded"
    • php --ini |Linux/Mac 终端中的 grep已加载"
    • 使用phpinfo(),并寻找Loaded Configuration File"
    • e.g. its default path on Windows: C:Program Files (x86)PHPv5.Xphp.ini (substitute v5.x with the version you installed) or C:Windowsphp.ini, etc.
    • or on Linux: /etc/php5/apache2/php.ini (e.g. this is the path on Ubuntu) or /etc/php5/cli/php.ini, /etc/php5/cgi/php.ini, etc.
    • or you can get to know where it is like this:
      • php --ini | find /i "Loaded" in Windows command prompt OR
      • php --ini | grep "Loaded" in Linux/Mac terminal
      • using phpinfo(), and looking for the line "Loaded Configuration File"

      和从下一行的开头删除分号(取消注释):

      • ;extension=php_pdo_mysql.dll 在 Windows 上
        • OR ;extension=php_pdo_mysql.so 在 Linux/Mac 上
        • ;extension=php_pdo_mysql.dll on Windows
          • OR ;extension=php_pdo_mysql.so on Linux/Mac
          • extension=php_pdo_mysql.dll 在 Windows 上
          • OR extension=php_pdo_mysql.so 在 Linux/Mac 上
          • extension=php_pdo_mysql.dll on Windows
          • OR extension=php_pdo_mysql.so on Linux/Mac

          您可能需要重新启动网络服务器.

          You may need to restart your web server.

          那解决了我的问题.

相关文章