我正在开发PHP,有一个简单的文件来测试各种功能。为了方便起见,我想从命令行运行此文件。这导致了一个问题,我不确定它是什么。
该代码使用 PDO。我有一个数据库类,它充当 PDO 包装器并强制执行单例设计模式。这门课非常简单。以下是一些相关代码:
// instance of PDO
private static $db = null;
//connection related fields
const dsn = "mysql:dbname=mydb;host=localhost";
const user = "myuser";
const password = "mypass";
//get access to the PDO instance
public static function get_instance()
{
if(!self::$db)
{
self::$db = new PDO(self::dsn,self::user,self::password);
self::$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
self::$db->exec("set names utf8");
}
return self::$db;
}
现在,当我使用以下内容创建一个测试文件时:
$db = Database::get_instance();
并从命令行运行它,如下所示:
php5 ./testing.php
我得到一个例外:PDOException",并显示消息"找不到驱动程序"这是由上面实例化新 PDO 对象的行引起的。
但是,如果我通过浏览器导航到此文件并且它由我的 Web 服务器提供,它运行良好,则该对象按预期工作。
这似乎是从终端运行 PHP 文件的问题。我不认为这是代码中的问题。谁能提出可能导致这种情况的原因?任何建议或帮助将不胜感激。谢谢。
PHP 的命令行版本可以具有与 Web 版本不同的配置。找到正确的PHP配置文件,设置数据库驱动程序,你应该没问题。
/usr/local/php/bin/php -> /usr/bin/php
/usr/bin/php
是PHP的命令行版本, /usr/local/php/bin/php
是网页版
尝试ln
命令