【发布时间】:2017-02-21 12:07:25
【问题描述】:
我更改了我的域和主机,并将所有代码从第一个主机移动到另一个带有数据库的主机。现在,我在 open-cart 1.5.6 中遇到错误
PHP 致命错误:在第 24 行调用 /home/l/beta4/system/library/db.php 中未定义的方法 mysqli::escape()
我的主机是 Godaddy。
这是我的 db.php 代码
<?php
class DB {
private $driver;
public function __construct($driver, $hostname, $username, $password, $database) {
$file = DIR_DATABASE . $driver . '.php';
if (file_exists($file)) {
require_once($file);
$class = 'DB' . $driver;
$this->driver = new $driver($hostname, $username, $password, $database);
} else {
exit('Error: Could not load database driver type ' . $driver . '!');
}
}
public function query($sql) {
return $this->driver->query($sql);
}
public function escape($value) {
return $this->driver->escape($value);
}
public function countAffected() {
return $this->driver->countAffected();
}
public function getLastId() {
return $this->driver->getLastId();
}
}
?>
第24行代码是
公共函数转义($value){返回 $this->driver->escape($value); }
【问题讨论】:
-
我编辑了我的问题
-
根据php.net/manual/en/book.mysqli.php的说法,mysqli没有提供一个叫做“escape”的函数。不过,real_escape_string 可以完成这项工作。