2012-01-29 63 views
0

這個劇本的作品,但它給了,如果沒有找到匹配的警告:我可以在php中的if條件中使用mysql_result嗎?

if (...) 
    irrelevant... 

elseif ($userId = mysql_result(
        mysql_query("SELECT id FROM users WHERE mail = '[email protected]'") 
          , 0)) 
    echo $userId; 

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 4 

這是「好」的PHP?還是我必須以另一種方式解決這個問題?

目標的腳本:如果有與郵件用戶,給予其ID

+0

用'和'將它分成兩個條件。但是開銷是爲什麼每個人都使用方便的包裝類,或者至少不是日期的mysql_ *函數。 – mario 2012-01-29 13:23:57

+0

@mario:日期功能有哪些選擇? – SuperSpy 2012-01-29 13:26:53

+0

通常[PDO被推薦](http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons)是最方便的。 – mario 2012-01-29 13:29:24

回答

2

這是相當難看,特別是因爲你沒有任何錯誤處理等

更好地創造執行的功能檢查是否返回用戶標識或NULL。然後你可以使用這樣的代碼:

elseif(($userId = get_userid_by_email('[email protected]')) !== null) 
2

爲了擺脫的警告,檢查查詢產生一個結果:

if($result = mysql_query("SELECT id FROM users WHERE mail = '[email protected]'")) 
{ 
    if ($userId = mysql_result($result, 0)) 
    { 
     echo $userId; 
    } 
} 

欲瞭解更多信息,請參閱mysql_result參考。

相關問題