为了线程,我只有2个PHP类,一个用于数据库,一个用于数据库中的用户。
在我的Users类中运行代码时,我的浏览器会显示一条PHP通知,说明..
注意:未定义的属性:Database :: $ escape in 第x行的/my/directory/user.class.php
在我的Users类中,我有以下代码:
$Database = new Database();
$submitData = array_map($Database->escape, $submitData);
$result = $Database->query("SELECT user_id FROM users WHERE email_address = " . $Database->quote($formData['email_address']));
在我的数据库类中,我有以下内容:
class Database {
private $db = array();
private $connection;
public $result;
public function escape($data) {
return mysqli_real_escape_string($this->connection, $data);
}
...
答案 0 :(得分:1)
Inproper callback,正确的回调:
$submitData = array_map(array($Database, "escape"), $submitData);
答案 1 :(得分:0)
当您想要使用
时,尝试为您的数据库实例提供另一个名称$Database->escape
,php指的是
Database::$escape
,这是类Database的静态变量,并且没有定义。
答案 2 :(得分:0)
在您的代码中,您拥有$ Database->的array_map;转义搜索该属性并抛出错误。你应该有一个可调用函数的名称,如“escape”或其他一些函数。