【问题标题】:ZF2- Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' (PHP 5.5.12)ZF2- 未定义的类常量 'MYSQL_ATTR_INIT_COMMAND' (PHP 5.5.12)
【发布时间】:2014-08-11 08:26:12
【问题描述】:

我正在开发一个 zend 框架 2 应用程序,并且正在使用端口 8080。我一开始的主要问题是我无法在视图中从数据库中检索或添加数据(可能是与连接的问题)数据库)。它没有显示任何错误,但无法检索或添加数据。 我试图在 global.php 中指定端口:

<?php

return array(
  'db' => array(
             'driver' => 'Pdo',
             'dsn' => 'mysql:dbname=pizza;host=localhost', 
             'driver_options' => array(
                 PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES\'UTF8\''
                 ),
              ),
  'service_manager' => array( 
      'factories' => array(
          'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory'
          )
      ),
 );

在那之后,我得到了这个错误:

Warning: PDO::__construct(): MySQL server has gone away in

我寻找解决方案,我找到了。我在 php.ini 中注释了一行:

extension=php_pdo_mysql.dll

它解决了问题,但现在我遇到了另一个问题:

Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in C:\wamp\www\pizza\config\autoload\global.php on line 18

我找到了一些关于如何通过 Linux 命令解决此问题的建议:

 apt-get install php5-mysql /etc/init.d/apache2 restart 

但我想要一个适用于 Windows 7 的解决方案,或者您可能觉得有用的任何其他解决方案。 感谢您的宝贵时间。

【问题讨论】:

  • 如果将其替换为代表整数 1002 是否有效?我也没有看到您的 global.php 中指定的端口。我认为您收到该错误是因为您在 php.ini 中注释了该行
  • 指定了 port=8080,就像说如果我取消注释“MySQL 服务器已消失”错误发生。你能告诉我我应该用 1002 替换什么
  • 那么我建议你解决“MySQL server has gone away”错误并考虑这个讨论stackoverflow.com/questions/2232150/…

标签: php database zend-framework2


【解决方案1】:

很遗憾,您似乎两次发现了不好的建议。您收到 Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' 错误,因为通过注释掉 php_pdo_mysql.dll 您有效地禁用了 MySQL 扩展。所以取消注释该行 - 你肯定想要那里。

您提到您“使用端口 8080”,但不清楚您的 ZF2 应用程序是在端口 8080 上运行,还是在该端口上运行 MySQL(这将是非标准的)。您说您尝试在global.php 配置文件中指定此端口,但在您发布的配置中找不到该端口。

“MySQL 服务器已消失”错误表示 MySQL 连接超时。这通常是由运行很长时间(>30 秒)而不接触数据库连接的 PHP 脚本引起的。这在标准 Web 应用程序中不太可能发生,因此我们需要有关导致此错误的原因的更多信息,以便为您提供帮助。

您还说您“无法在视图中从数据库中检索或添加数据”。如果情况仍然如此,那么即使没有显示给您,也一定是某个地方出现了错误。所以检查相关的错误日志和你的错误设置。

【讨论】:

  • 你能告诉我你需要什么资料吗
  • 如果您重新启用 MySQL,当您尝试从数据库中检索或添加数据时,您会遇到哪些错误(如果有)?如果出现空白屏幕或没有错误,错误日志中会显示哪些错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-25
  • 2011-01-26
  • 2016-10-06
  • 2013-07-02
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
相关资源
最近更新 更多