2013-01-09 136 views
0

我的代碼:PHP易MySQL查詢if語句

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS); 
mysql_select_db(SQL_DB); 
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = '2'"); 
if (!$result) { 
die("Tribe Error"); 
} 

在這段代碼中所有用戶的部落得到錯誤。但我只想'2'部落得到錯誤。這段代碼有什麼問題?

謝謝。

編輯:請編輯我的代碼有什麼不對,請。

+1

不要使用MySQL,使用庫MySQLi或PDO預處理語句 –

+0

爲什麼?我的數據庫mysql ... – user1951205

+4

@ user1951205讓未來的用戶看到你的問題。如果你知道這一點,太棒了! [**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護,[棄用過程](http://j.mp/Rj2iVR)已經開始。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – Jeremy1026

回答

0

您正在檢查查詢是否返回錯誤,而不是查詢是否返回1(或更多...)行,這可能是您想要的。返回0行的查詢仍然是有效的查詢。

除此之外,您應該切換到PDO(或mysqli)並準備帶有綁定變量的語句。

在PDO中,您可能會得到返回行數rowCount(),請查閱手冊以獲取有關如何將代碼重寫爲PDO的更多詳細信息。

+0

你能編輯我的代碼嗎? – user1951205

0

我發現這對你:http://php.net/manual/en/mysqli.query.php

在這裏你可以學習如何使用mysqli的

這裏下的代碼,你可以modefy你自己

編輯: 這不是正確的方式,但嘗試這個

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS); 
mysql_select_db(SQL_DB); 
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = 2"); 
$fetch = mysql_fetch_assoc($result); 
if (count($fetch)<1) { 
if (!$result) { 
die("Tribe Error"); 
} 
else{ 
var_dump($fetch); 
} 
+0

我不能告訴我想要什麼......對不起我的英語不好,但我想只有當用戶的部落2得到錯誤...不需要mysqli – user1951205

+0

是你的部落列一種類型的int?或nvarchar? – apero

+0

部落列 - > tinyint(1) – user1951205

0

Mysqli on PHP official site

修改下面提到以滿足您的應用程序的代碼

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS); 
mysql_select_db(SQL_DB); 
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = 2") or die(mysql_error()); 
$fetch = mysql_num_rows($result); 
if ($fetch > 0) { 
    while($dets = mysql_fetch_assoc($result)){ 
     //displaying all info about current record 
     var_dump($dets); 
    } 
} 
else 
    echo "No records";