2014-10-17 67 views
0

我有MySQL查詢像下面:MySQL查詢與字符串參考價值數據庫

$sourcedata = mysql_fetch_array(
       mysql_query("SELECT Whereclause 
           FROM generaltable 
           WHERE ID = '1'" 
          ) 
       ); 

$Whereclause = $sourcedata['Whereclause']; 

在從「Whereclause」場「generaltable」在數據庫中,由下面的文字:

WHERE username = '$_SESSION[username]' 

然後,我有其他查詢:

$data = mysql_fetch_array(
        mysql_query("SELECT * 
            FROM usertable 
             $Whereclause" 
          ) 
         ); 

當我echo $data['username'],它沒有顯示任何東西。

如果我複製數據庫中的值來替換$ Whereclause,它工作正常,如果我用'admin'替換'$ _SESSION [username]',例如它工作正常。

我該如何解決這個問題?需要你的幫助。

非常感謝。

+0

試試打印「SELECT * FROM用戶表$ Whereclause」,並在你的mysql編輯 – Pantamtuy 2014-10-17 08:24:29

+0

@ Arif_suhail_123查詢它是的,我把數據庫字段該值。 – anesbbs 2014-10-17 08:49:52

+0

@Pantamtuy你的意思是從sql查詢phpmyadmin?它能識別$ Where條款嗎? – anesbbs 2014-10-17 08:53:58

回答

0

您遇到的問題是$Whereclause是一個字符串,因此它不會被評估('$_SESSION[username]'保持原樣)。

你必須告訴PHP與功能eval()評估這個字符串:

$data = mysql_fetch_array(
      mysql_query(
      eval("return \"SELECT * FROM usertable $Whereclause\";") 
     ) 
     ); 
+0

它變成了錯誤。 – anesbbs 2014-10-17 09:47:19

+0

警告:mysql_fetch_array()期望參數1是資源,布爾值在... – anesbbs 2014-10-17 09:47:48

+0

正確!我要糾正它,在一分鐘後回過頭看看答案 – 2014-10-17 11:59:41

1

當您使用獲取數組。可以請你

$data[0]['username'] 
+0

它仍然沒有顯示。 – anesbbs 2014-10-17 09:44:07