我已经在这方面工作了一段时间,我知道它比我制作它简单,但我无法得到它。我有一些代码,我试图从我的表中查询枚举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
现在无论我做什么,我都会得到同样的东西,我不知道我在这里做错了什么,如果有人可以指出这将是非常棒的。这个枚举主要用于布尔,只是为了查看用户是否亲自设置了密码而不是计算机生成的版本。
答案 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'];
}