MySQL查询枚举

时间:2011-01-24 08:58:15

标签: php mysql

我已经在这方面工作了一段时间,我知道它比我制作它简单,但我无法得到它。我有一些代码,我试图从我的表中查询枚举1或0,所以这正是我必须这样做的。

$username = 'test'
$passResult = mysql_query("SELECT usrSetPass FROM members WHERE usr='.$username.'");

现在我认为所有的连接都没有了,我没有错误,但是当我在回声中打印出这个东西时,我得到了这个,

继承我的回声:

echo 'Hello, '.$username.', you Result is: '.$passResult.'!';

我想得到的是:

Hello, test, your Result is: 1

or 

Hello, test, your Result is: 0

现在我得到的是:

Hello, test, your Result is: Resource id #6

现在无论我做什么,我都会得到同样的东西,我不知道我在这里做错了什么,如果有人可以指出这将是非常棒的。这个枚举主要用于布尔,只是为了查看用户是否亲自设置了密码而不是计算机生成的版本。

2 个答案:

答案 0 :(得分:2)

mysql_query返回结果资源,本质上是指向缓冲结果的内存的指针。该结果集可以包含许多行,因为您可以选择多行,因此您需要从这些行中获取所需的行,然后获取所需的列。

/* execute the query and get a result resource back */
$passResult = mysql_query("SELECT usrSetPass FROM members WHERE usr='" . mysql_real_escape_string($username) . "'");

/* retrieve the first row from $passResult */
$row = mysql_fetch_assoc($passResult); 

/* assign the usrSetPass column's value from that row to $passed */
$passed = $row['usrSetPass']; 

此外,您的查询错误。你用双引号括起来,所以当你在里面使用单引号和点时,你实际上并没有打破字符串并连接$ username。我已在上面纠正过了。

答案 1 :(得分:0)

mysql_query不返回值,它返回一个资源(参见手册中的here)。

返回的结果资源应该传递给另一个函数来处理结果表(如mysql_fetch_array()mysql_fetch_assoc()),以访问返回的数据。

基于初始代码的示例:

$username = 'test';
$passResult = mysql_query("SELECT usrSetPass FROM members WHERE usr='".$username."'");
while ($row = mysql_fetch_assoc($passResult)) {
    echo $row['usrSetPass'];
}