2012-09-29 153 views
1

我試圖從名爲say的表中選擇一列,1234php SELECT查詢適用於值,但不適用於變量

 $query="select Number from `$table`"; 
     $contacts=mysql_query($query); 

     while($row=mysql_fetch_array($contacts)) 
     echo $row['Number']; 

如果我使用「從1234選擇號碼」,它的工作原理。 $ table的值是使用$ _REQUEST [「key0」]得到的。我將該頁稱爲"localhost/page_id=22?key0=1234"問題是什麼?我碰到下面的錯誤在mysql_fetch_array聲明:Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\wp-content\plugins\exec-php\includes\runtime.php(42)

+0

你是否迴應'$ table'的價值?另外,請仔細閱讀SQL注入。你創建查詢的方式非常不安全 - http://stackoverflow.com/questions/332365/xkcd-sql-injection-please-explain。 – JohnP

+0

我也試着迴應它。它甚至不打印該值。 – venkatKA

+1

這意味着你沒有價值。如果它沒有打印,那麼該值不會被填充。另外,如果你得到這個錯誤,這意味着你的mysql_connect調用沒有正確完成 – JohnP

回答

2

你調用的URL的格式應該是這樣的:

localhost/?page_id=22&key0=1234 

此外,1234是表一個奇怪的名字:))

+0

謝謝。現在,回顯$表的作品。但警告仍然存在,並且查詢已經執行。 – venkatKA

+0

檢查數據庫中是否存在'Number' [帶有大寫N!]字段和'1234'表。嘗試在你選擇/ phpmyadmin的mysql客戶端運行查詢來讀取sql錯誤。 – moonwave99

0

寫這樣"select Number from ".$table;

+0

Nope這不起作用 – venkatKA

+0

看看$表中的值是否正確。 –

0

$contacts是什麼從您的查詢返回,它將返回false如果你有某種類型的錯誤。 所以:

  1. 你可能沒有一個表中的錯誤(閱讀的try-catch)被稱爲1234在FROM子句中ü必須使用現有元素/表從數據庫(或臨時表由此產生)
  2. SQL注入的好運氣。
0
$conn=mysql_connect("localhost","root",""); 
mysql_select_db("as you wish",$conn); 
$query="select Number from `$table`"; 
     $contacts=mysql_query($query,$conn); 

     while($row=mysql_fetch_array($contacts)) 
     echo $row['Number']; 

試試這個

0

這將肯定工作。

"SELECT * 
    FROM `yourdatabase_name`.`$table` " 
+0

解釋,你爲什麼這麼肯定?如果以前沒有選擇數據庫,它就可以工作,但這不是問題的明顯原因。有一件事是肯定的,這解決了未選中的數據庫問題,僅此而已。 – Wh1T3h4Ck5

0

我認爲你必須使用類似這樣

本地主機/?PAGE_ID = 22 & KEY0 = 1234,但在你的問題你提到你正在使用本地主機/ PAGE_ID = 22?KEY0 = 1234所以試試我在這裏提到的!

希望它能幫到你

相關問題