2015-12-27 69 views
-1

因此,這裏是我的代碼:錯誤:mysql_fetch_array()預計參數1是資源

$sql = "SELECT * FROM `items`"; 
$result = mysqli_query($conn, $sql); 

while($prommes = mysql_fetch_array($result)){ 
} 

當我運行它。我得到這個錯誤:

mysql_fetch_array() expects parameter 1 to be resource.

是否我的數據庫有問題?

這裏是我的連接,這是在html文檔中的Irequire。它可能是什麼使查詢無法正常工作?

$servername = "localhost"; 
$username = "root"; 
$password = ""; 

// Create connection 
$conn = mysqli_connect($servername, $username, $password); 


// Check connection 
    if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
// echo "Connected successfully"; 

回答

0

就我所知,您從不選擇數據庫,因此$ result不是結果集(因爲查詢從不正確執行)。相反,它可能是false。你可以通過var_dump來驗證。嘗試在查詢中添加數據庫名稱。如果您的數據庫名爲db,例如:

SELECT * FROM `db`.`items`; 

如果你不想每次都顯式指定數據庫名稱,你只是想數據庫名稱添加到庫MySQLi連接字符串,如圖所示: http://php.net/manual/en/mysqli.query.php

0

在while循環中,mysql_fetch_array不正確。它應該是

while($prommes = mysqli_fetch_array($result)) 

Additonally您的連接需要

$conn = mysqli_connect($servername, $username, $password, $database); 

其中$database是你的數據庫名稱(不是主機名)。

另外,使用面向對象的方法可以更好地避免這種情況。例如,你的連接可能是;

$conn = new mysqli($servername, $username, $password, $database); 

和你的查詢和循環可能;

$result = $conn->query($sql); 

while($prommes = $result->fetch_array()) 

希望這會有所幫助。

+0

有關使用OO mysqli的更詳細的解釋,請參見[本答案](http://stackoverflow.com/a/26476208/3899908) – worldofjr

+0

而且mysqli_query()和while(mysqli_fetch _... [必須有錯誤處理](http://stackoverflow.com/questions/2973202/mysql-fetch-array-expects-parameter-1-to-be-resource-or-mysqli-result-boole)。每個查詢都可能隨時失敗。 – VolkerK

+0

@worldofjr在哪裏可以找到我的數據庫的名稱?我使用XAMP通過localhost進行設置。它不是我想用作「$ database」的表的名稱,對吧? – Transk

相關問題