Php mysqli相当于is_resource()
我正在用mysql和mysqli编写一个数据库包装器 要通过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
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
}