2012-01-08 196 views
0

這是我的代碼:MySQL查詢總是返回空值

$pass = mysql_query("SELECT `password` FROM acc WHERE account_id = '122' LIMIT 1;"); 
$p = mysql_fetch_object($pass); 
$passwd = (($p->password != "") ? $p->password : "empty"); 

然後我做echo $passwd;,它總是被重新調整了「空」的字符串。

當然存在account_id 122的行。

那有什麼問題?

+3

那麼它是122還是133? – nycdan 2012-01-08 17:12:28

+0

您正在選擇account_id爲122而不是133的行。Typo? – 2012-01-08 17:12:52

+0

var_dump($ p)顯示什麼? – 2012-01-08 17:13:32

回答

0

試試這個代碼:

$query = mysql_query("SELECT * FROM `acc` WHERE `account_id`='122'") or die(mysql_error()); 
while($data=mysql_fetch_object($query)){ 
$pass = $data->password; 
} 
echo $pass 

您現在應該能夠存取權限從該行包括密碼字段中的所有領域。

+1

你錯誤地引用了'account_id'。 – Ben 2012-01-08 17:18:22

0

,如果你改變

$passwd = (($p->password != "") ? $p->password : "empty"); 

$passwd = (empty($p->password)) ? $p->password : "empty"); 
+0

仍然一樣。 – Cyclone 2012-01-09 00:15:48

0

你不需要分號在您的查詢的末尾。你爲什麼有一個限制1? accaccount_id上應該是唯一的,因爲對同一個帳戶應該有多個密碼是不可能的。

$pass = mysql_query("SELECT `password` FROM acc WHERE account_id = '122'"); 

由於@shawn指出,如果你的account_id確實是一個數,最好不要依靠隱含字符數轉換。儘管這並不重要,但這不是一個好習慣。