参数应为警告


Parameter expected warning

运行代码时出现以下警告:

call_user_func()要求参数1是有效的回调,找不到函数"db_connect"或函数名无效

代码:

 require_once("mo_object.php");
 class MO_Model extends MO_Object
 {
    private $con; 
    static function db_query($qry)
    {
       $this->db_connect;
       return $qry;
    }
    function db_connect()
    {
       $con =  mysqli_connect($rconf['host'],$mo_conf['usr'],$mo_conf['password'],$mo_conf['da   tabase']);
    } 
}

为什么我不能正确运行db_connect函数?

谢谢。

如果这是一个类,并且这些函数都在同一个类中,请尝试以下操作:

static function db_query($qry)
{
   $this->db_connect();
   return $qry;
}
public function db_connect()
{
   $con = mysqli_connect($rconf['host'],$mo_conf['usr'],$mo_conf['password'],$mo_conf['database']);
} 

为什么使用call_user_func?直接调用函数并在db_connect函数中返回连接。当您构建数据库类时,您应该在创建对象时打开连接,并在整个过程中使用该连接。

否则就会有很多无用的数据库连接。如果你使用持久层,比如Doctrine DBAL或Doctrine 2 ORM或任何其他抽象层来获取数据,也许会更好。

有更多的层可以使用数据库,你可以在谷歌上搜索它们。

问题已修复。我把db_connect函数变成了static。

谢谢。