以下方法可以完成它的工作,但也会继续打印警告,这对于OOP来说是个新手,所以我想知道原因。
我已经做了一些谷歌搜索,似乎喜欢它我和OOP混合程序,这是警告,至少我在别处读过的回复。
代码:
function __construct(){
global $connection;
$mysqli_result=$connection->query("select module from modules");
while($row=$mysqli_result->fetch_row()){
$this->whitelist[]=$row[0];
}
mysqli_free_result($row);
return;
}
警告:
mysqli_free_result() expects parameter 1 to be mysqli_result, null given in.....
如果可能的话,我希望有人对此有所了解。
答案 0 :(得分:1)
您正在以面向对象的方式使用MySQLi
,并且您无法使用其中的过程函数 ,请参阅编辑。你会这样做:
$mysqli_result->free()
...来代替。
即使你使用的是程序方法,你所做的也是不正确的,因为fetch_row()
返回一个数组,而mysqli_free_result()
会期望结果资源 - 你需要这样做:
mysqli_free_result($mysqli_result);
...但是对于您的代码,第一个示例就是您想要的。
修改强>
实际上,经过测试,您实际上也可以使用第二个选项。但是,第一个选项最适合您的代码。