[英]PHP/MySQL query error?
頁面在這里: http : //www.arkmediainc.com/ark20test/ark20test/portfolio.php
$result = mysql_query(
"SELECT * FROM foliobro WHERE itemid >= ".$startid." LIMIT 9"
);
while($row = mysql_fetch_array($result))
{
$itemid = $row['itemid'];
$thumb_desc = $row['thumb_desc'];
$title = $row['title'];
$category = $row['category'];
...
}
我收到此錯誤代碼:
Warning: mysql_fetch_array() expects parameter 1 to be resource,
boolean given in /home/arkmedia/public_html/ark20test/ark20test/portfolio.php
on line 49
第49 while($row = mysql_fetch_array($result))
實際上是while($row = mysql_fetch_array($result))
行。
我正在嘗試獲得以下9個結果,(id為1-11,將來會擴展)為1-9或10-11 +我的查詢出了什么問題,因為我懷疑查詢無法正常運行。 該查詢直接來自phpMyAdmin,所以我不明白為什么它不起作用。
將您的代碼更改為:
$result = mysql_query("SELECT * FROM foliobro WHERE itemid >= ".$startid." LIMIT 9");
if (!$result) {
die(mysql_error());
}
您的查詢失敗,並將無效結果傳遞給mysql_fetch_array
。
檢查右側邊欄是否有重復的問題。
從PHP文檔:
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning
resultset, mysql_query() returns a resource on success, or FALSE on error.
For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc,
mysql_query() returns TRUE on success or FALSE on error.
The returned result resource should be passed to mysql_fetch_array(), and
other functions for dealing with result tables, to access the returned data.
Use mysql_num_rows() to find out how many rows were returned for a SELECT
statement or mysql_affected_rows() to find out how many rows were affected
by a DELETE, INSERT, REPLACE, or UPDATE statement.
mysql_query() will also fail and return FALSE if the user does not have
permission to access the table(s) referenced by the query.
因此,當您遇到錯誤時,它返回false,這可能是SQL錯誤,但是考慮到查詢的簡單性,這似乎不太可能,因此,我將嘗試確保正確設置您的權限。
順便說一句,請不要使用mysql_ *,請使用PDO或mysqli。 mysql_ *已棄用。
如果沒有更多信息,我想您在運行查詢時$startid
變量為空-或者您對表名打錯了字。
運行這個:
$sql = "SELECT * FROM foliobro WHERE itemid >= ".$startid." LIMIT 9;";
echo $sql;
$result = mysql_query($sql);
並在運行查詢時查看是否已定義變量/非空
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.