阅读Larry Ullman的PHP 5,我被告知要安装Pear Auth软件包以及Pear DB。
根据Pear网站的说法,数据库软件包已被弃用,转而使用MDB2。所以我安装了后一个(MDB2)包。
我运行程序时收到此警告。
Fatal error: Class 'DB' not found in /Users/michaelmitchell/pear/share/pear/Auth/Container/DB.php on line 150
我不确定自己是否做错了(如果有的话,是什么?)或者Auth软件包是否以某种方式引用了已弃用的DB类或其他内容?
if (!DB::isConnection($this->db)
下面的第三行是DB.php的第150行。有人可以帮忙吗?
function _prepare()
{
if (!DB::isConnection($this->db)) {
$res = $this->_connect($this->options['dsn']);
if (DB::isError($res) || PEAR::isError($res)) {
return $res;
}
}
if ($this->options['auto_quote'] && $this->db->dsn['phptype'] != 'sqlite') {
if (strpos('.', $this->options['table']) === false) {
$this->options['final_table'] = $this->db->quoteIdentifier($this->options['table']);
} else {
$t = explode('.', $this->options['table']);
for ($i = 0, $count = count($t); $i < $count; $i++)
$t[$i] = $this->db->quoteIdentifier($t[$i]);
$this->options['final_table'] = implode('.', $t);
}
$this->options['final_usernamecol'] = $this->db->quoteIdentifier($this->options['usernamecol']);
$this->options['final_passwordcol'] = $this->db->quoteIdentifier($this->options['passwordcol']);
} else {
$this->options['final_table'] = $this->options['table'];
$this->options['final_usernamecol'] = $this->options['usernamecol'];
$this->options['final_passwordcol'] = $this->options['passwordcol'];
}
return true;
}
答案 0 :(得分:2)
做
pear install --force --alldeps Auth
自动重新安装所有必需的依赖项。
在您的脚本中,确保PEAR位于已配置的include_path中,并且可以由任何已配置的自动加载器找到和/或手动包含所需的包。
答案 1 :(得分:0)
不要强行安装数据库,不推荐使用!改变以下代码:
if (!MDB2::isConnection($this->db)