簡體   English   中英

mysql_fetch_array()問題

[英]mysql_fetch_array() issue

以下是拋出以下錯誤:

警告:mysql_fetch_array():提供的參數不是第33行/home/zyquo/public_html/ghosthuntersportal.com/product_process.php中的有效MySQL結果資源

Line 33 is: while($row11=mysql_fetch_array($result11)){

elseif($_GET['do']=="add"){
$sql10="INSERT INTO $tbl_name (product_name, product_price, product_category, product_link, product_image, product_tag, product_features, product_pros, product_cons, product_description, product_notes) VALUES ('$product_name', '$product_price', '$product_category', '$product_link', '$product_image', '$product_tag', '$product_features', '$product_pros', '$product_cons', '$product_description', '$product_notes')";
mysql_query($sql10);
$sql11="SELECT product_id FROM $tbl_name WHERE product_name=".$product_name."";
$result11=mysql_query($sql11);
while($row11=mysql_fetch_array($result11)){
$product_id2=$row11['product_id'];
$sql12="INSERT INTO $tbl_name2 (keyword,product_id) VALUES ('$keyword','$product_id2')";
mysql_query($sql12);
}
}

查詢sql10運行並插入數據,查詢sql11不運行。

您必須嘗試使用​​“。$ product_name”的單引號。

$sql11 = "SELECT product_id FROM $tbl_name WHERE product_name='" . $product_name . "' ";

問題不在於mysql_fetch_array() ,它與前面的mysql_query() ,因此查詢字符串$sql11存在問題。

您的代碼如下所示:

$sql11="SELECT product_id FROM $tbl_name WHERE product_name=".$product_name."";

知道$tbl_name$product_name是什么有幫助,特別是$product_name 您沒有告訴我們您是否已經轉義$product_name ,或者是否添加了引號,但我必須假設您沒有。

在SQL查詢中,所有字符串都必須使用引號。 (您在代碼中有引號,但這些是PHP引號,並且不會在查詢中結束)。

因此,您應該更改查詢以添加引號,如下所示:

$sql11="SELECT product_id FROM $tbl_name WHERE product_name='".$product_name."'";

但是,這不是問題的結束,因為如果$product_name本身包含引號字符,您仍會遇到問題。 因此,您還應該使用mysql_real_escape_string()函數確保正確轉義SQL查詢中的變量。

因此(假設您尚未轉義$product_name變量),您的代碼現在應如下所示:

$sql11="SELECT product_id FROM $tbl_name WHERE product_name='".mysql_real_escape_string($product_name)."'";

最后,在執行SQL查詢時應該執行一些基本的錯誤檢查。 您可以通過檢查$result是否為false來執行此操作,如果是,則通過使用mysql_error()函數來確定錯誤的性質。 錯誤可能是由於查詢字符串錯誤(在這種情況下很可能),但也是因為數據庫本身的連接問題或者代碼中可能沒有錯誤的一些原因。 因此,在每個mysql_query() ,您應始終在繼續之前檢查是否未發生錯誤。 (如果出現錯誤,由您決定該怎么做!)。 能夠應對意外錯誤是至關重要的,並且通常會使好程序和壞程序之間產生差異。

我希望有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM