Php mysqli相当于is_resource()

Php mysqli相当于is_resource(),php,mysql,mysqli,Php,Mysql,Mysqli,我正在用mysql和mysqli编写一个数据库包装器 要通过fetch\u object()获取数据,我编写了一个方法: public function fetch($mixed) { if (is_resource($mixed)) { return mysql_fetch_object($mixed); } elseif (!empty($mixed)) { $result = $this->query($mixe

我正在用mysql和mysqli编写一个数据库包装器

要通过
fetch\u object()
获取数据,我编写了一个方法:

public function fetch($mixed)
{
    if (is_resource($mixed))
    {
        return mysql_fetch_object($mixed);
    }
    elseif (!empty($mixed))
    {
        $result = $this->query($mixed);
        return mysql_fetch_object($result);
    }
    elseif (is_resource($this->result))
    {
        return mysql_fetch_object($this->result);
    }

    return false;
}
现在我听说
is\u resource()
对于mysqli来说不是一个好的解决方案

我还可以如何检查它是字符串还是mysqli_结果

我还可以如何检查它是字符串还是mysqli_结果


我觉得你的方法太过分了。您应该指定函数的输入和输出是什么。有许多不同类型的输入会导致大量的代码。已经有大量的DB包装器,除非你真的必须,否则不要重新发明轮子。另一方面,mysql_*函数很快就会被弃用,所以请使用PDO和alternatives@IvanHušnjak我不同意。重新发明轮子是一次很好的学习经历。我想使用
$result=$sql->query(“从表中选择id”)$数据=$sql->fetch($result)
$data=$sql->fetch(“从表中选择id”)
@MikeB是在学校里,或者是在闲逛,为了真正的站点而重新创建-不,对于任何不知道的人(比如我):如果你从另一个名称空间中检查,你必须在
mysqli_result
前面加一个反斜杠
$result instanceof\mysqli_result
,或者将一个变量分配给一个字符串并使用它进行检查:
$classname='mysqli_result';变量转储($result instanceof$classname)
Hi Mike,在检查mysqli连接而不是实际结果时,您建议使用什么来替换
is\u resource
?例如,在这样的调用中:
if is_resource($GLOBALS['WriteConnection'])
?实际上,
if($GLOBALS['WriteConnection']instanceof mysqli)
似乎完成了这项工作救生圈升级旧网站!谢谢
if (is_string($result)) { 
  // Result is a string
}

if ($result instanceof mysqli_result) {
  // Result is a mysqli_result object
}