2012-01-08 218 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确实是一个数,最好不要依靠隐含字符数转换。尽管这并不重要,但这不是一个好习惯。