【问题标题】:Getting pdo_mysql driver to work in CLI让 pdo_mysql 驱动程序在 CLI 中工作
【发布时间】:2011-08-25 11:18:39
【问题描述】:

我在 CLI 中的 pdo_mysql 扩展有问题。我正在使用本地 LAMPP 安装并制作 info.php 文件,我可以看到我启用了 PDO 和 mysql 驱动程序。但是当我在命令行中写php --ri mysql 时,它返回Extension 'mysql' not present。 我已经阅读了 php.ini,一个用于 CLI 的,一个用于加载浏览器的,我看不出 pdo 配置有什么不同。 PDO 已为 CLI 激活,但 pdo_mysql 未激活,我找不到任何 pdo_mysql.so 文件或任何其他文件或行来告诉我为什么它可以从浏览器而不是 cli 工作。有什么帮助吗?

非常感谢。

【问题讨论】:

  • 如果您要使用的是 PDO,为什么还要查询老式的 mysql 扩展?
  • 你是对的,但如果我查询 PDO,我会发现 PDO 支持已启用但未安装驱动程序。

标签: php mysql pdo command-line-interface


【解决方案1】:

我通过 aptsudo apt-get install php5-cli 使用 ubuntu+mysql(单独安装非灯)和 php cli。默认情况下会安装 PDO,但未安装适当的数据库驱动程序(在我的情况下为 mysql)。这可以从命令行php --ri pdo 进行验证,这会导致 PDO 支持=>启用和 PDO 驱动程序=>(空白)

通过sudo apt-get install php5-mysql 为mysql 安装php5-mysql 模块来纠正这个问题。显然,在安装 php5-cli 之后执行此操作。如果您正在使用另一个数据库(例如 postgres 或 odbc),请通过 sudo apt-cache search php5

查找适当的模块名称

【讨论】:

  • 我做了你提到的这两个步骤。但是当我运行 php --ri pdo 时,我仍然看不到 php5-mysql。你知道为什么会这样吗?
【解决方案2】:

问题解决了。我有两个 php 安装,一个由 LAMPP 安装,其中包含所有必需的 pdo 驱动程序,另一个安装在系统中(我不知道它是否默认带有 ubuntu 或者我在某个时候安装了它)启用了 PDO 但没有 PDO司机。 CLI 与第二个 PHP 一起工作,除非您另有说明。我在 CLI 中使用 Doctrine,但我正在执行一个调用一些 php 代码的 bash 文件。在 .doctrine 文件的第一行中,我可以告诉系统我要使用什么 php:

#!/root/to/lampp/php

而且它起作用了(实际上它并没有创建它应该创建的数据库表,但这是一个不同的问题,我仍然需要解决。

【讨论】:

  • 如果你把那一行hash bang line放在单元测试的顶部,“driver not found”错误信息就消失了?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-24
  • 1970-01-01
  • 2013-07-13
  • 2021-11-23
  • 1970-01-01
  • 2021-02-10
  • 2020-07-09
相关资源
最近更新 更多