2015-05-14 140 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");