php
  • mysql
  • 2012-08-22 70 views 0 likes 
    0

    對於下面的代碼,我試圖獲取gen中的性別值,然後將其存儲在$ gender中,但是出現錯誤輸出。我得到Resource id #8作爲我的輸出,而不是男性或女性。 我該怎麼做才能獲得性別價值,並使用最少的編碼將其存儲在$gender中。mysql中的存儲值返回值在php變量中

    $gender=mysql_query("SELECT `gender` as gen FROM `register` WHERE `reg_id` = 'reg252'"); 
    echo $gender; 
    

    的一種方式,我可以做的是通過調用類似下面的方式 - 你在你的SQL

    $gender=mysql_query("SELECT `gender` FROM `register` WHERE `reg_id` = 'reg252'"); 
    while($erow = mysql_fetch_array($gender)) 
    { 
        echo $erow['gender']; 
    } 
    
    +0

    請不要使用'mysql_ *'功能新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。請參閱[**紅框**](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這是一本很好的PDO教程](http://goo.gl/vFWnC)。 – PeeHaa

    +0

    嗯,是的,'mysql_query'返回一個*結果集資源*,你已經想出瞭如何從結果集中得到結果。這是它的工作方式。 – deceze

    +0

    btw它應該是'echo $ erow ['gen'];' – Peter

    回答

    2
    list($gender) = mysql_fetch_row(mysql_query("SELECT `gender` as gen FROM `register` WHERE `reg_id` = 'reg252'")); 
    
    +1

    我建議反對這樣的一行,你應該適當地錯誤處理結果任何和所有'mysql_query'調用,而不是盲目地將它們送入下一個函數。 – deceze

    +0

    我建議使用PDO而不是'mysql_'函數,但顯然這個人仍在學習 – Peter

    +1

    無論如何,PDO或'mysql_',如果你想使用單行程序,你應該使用正確的返回和幫助函數異常處理。 –

    0

    SELECT `gender` as gen ... 
    

    當你輸出echo $erow['gender'];

    所以要麼輸出echo $erow['gen'];,要麼SELECT gender FROM ...

    +1

    我希望看到downvoters的一些評論。 –

    +0

    爲此解決方案+1了,因爲它是解決方案的一部分(由Mina重新完成) – Waygood

    +0

    可能是因爲您做出了另一個邏輯錯誤而被降級。所以要麼輸出echo $ erow ['gender'],要麼是SELECT性別FROM ...它應該是這樣或者輸出echo $ erow ['gen'],或者SELECT性別FROM –

    0

    您返回列根,所以你必須檢查根 echo $erow['gen'];

    一般檢查從PeeHaa評論

    +0

    重複@Vlakarados由於某種原因被低估了 – Waygood

    +0

    對不起,提及相同的其他答案。當我提交答案時,這裏沒有答案。可能我們在同一秒內提交了它們。 –

    +0

    coorected第二個'因爲gen'被錯誤地存在 –

    相關問題