2015-05-14 142 views
0

我得到这种类型的错误:掌握mysqli_query错误()

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in

我已经做错了吗?

代码:

<?php 

require('config.php'); 

function showAll() { 
    $query = mysqli_query($connect, "SELECT * FROM cont")or die(mysqli_error()); 
    $res = mysqli_fetch_assoc($query); 


    $data = array(); 
    while ($row = mysqli_fetch_assoc($res)) { 
     $data[] = $row;  
    } 
    return $data; 
} 

?> 
+1

什么是'$ connect'? –

+1

你的config.php声明为$ connect –

+0

你有多个选项可以将'$ connection'传递给函数,或者“坏主意”在函数中使用'global $ connection',请阅读关于作用域的内容http://php.net /manual/en/language.variables.scope.php – VeeeneX

回答

2

此错误是说,你的$连接是空,是您的连接是好的? 您是否制作这样的连接到MySQL服务器:

$connect = mysqli_connect("localhost","my_user","my_password","my_db"); 

另一件事,可能出错是在这里:

while ($row = mysqli_fetch_assoc($res)) { 
     $data[] = $row;  
    } 

你$资源变量是1分的结果数组,while循环需要mysql资源(查询变量在你的情况)。 你应该probobly试试这个:

while ($row = mysqli_fetch_assoc($query)) { 
     $data[] = $row;  
    } 
+0

他的变量范围有问题,请将其添加到您的答案中。 – VeeeneX

1

添加

global $connect; 

function showAll()开始和在那里你有$connect = mysqli_connect()

+0

感谢它现在的作品! – Viktor

-2

有一个问题在$connect功能。确保在$connect中传递的参数是正确的。

$connect("localhost","root","password","databaseName");