运行我的代码时出现以下警告:
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函数?
感谢。
答案 0 :(得分:1)
如果这是一个类并且这些函数都在同一个类中,请尝试:
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']);
}
答案 1 :(得分:0)
为什么使用call_user_func
?直接调用该函数并在db_connect
函数中返回您的连接。构建数据库类时,应在创建对象时打开连接,并在整个过程中使用该连接。
否则你有很多无用的数据库连接。如果你使用像Doctrine DBAL或Doctrine 2 ORM或任何其他抽象层这样的持久层来获取你的数据,也许会更好。
还有很多层可用于数据库,你可以谷歌搜索它们。
答案 2 :(得分:0)
问题已解决。我成了静态的db_connect函数。
感谢。