可能重复:
PHP Error: mysql_fetch_array() expects parameter 1 to be resource, boolean given
所以我的错误是什么:
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in /home/content/12/8781812/html/internal/domain/property/process.php on line 17
代码是:
function checkTOS($username){
include("includes/opendb.php");
$user2check = mysql_real_escape_string($_POST['username']);
$query = "SELECT * FROM user WHERE username=".$user2check;
$result = mysql_query($query);
while($row = mysql_fetch_row($result)){
$TOS = $row[11];
}
if($TOS == 1){
return true;
}else{
return false;
}
}
第17行是:
while($row = mysql_fetch_row($result)){
这基本上是检查用户是否接受了主用户数据库中的服务条款。
修改
所以我修复了它,但是当我尝试打印我的行时,我什么都没得到......继承了新的代码。
function checkTOS($preusergrab){
include("includes/opendb.php");
$query = "SELECT * FROM users WHERE username='".$preusergrab."'";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_row($result)){
$TOS = $row[11];
}
// echo $query;
print_r($row);
die();
答案 0 :(得分:4)
您在查询字符串中忘记了$ username周围的引号,导致用户名被视为不存在的字段名。查询失败,返回一个布尔值false,然后你盲目地尝试在fetch调用中使用它,触发你的错误。
$query = "SELECT * FROM user WHERE username='".$user2check . "'";
^-- ^^^^^^---missing
如果你有甚至准确的最小错误处理,你会看到错误:
$result = mysql_query($query) or die(mysql_error());
答案 1 :(得分:1)
您的查询失败。这就是为什么它是一个布尔值。
$result = mysql_query($query);
if ($result === FALSE) {
die("My query failed : " . mysql_error());
}
答案 2 :(得分:1)
您需要在查询中引用您的用户名:
$query = "SELECT * FROM user WHERE username='".$user2check."'";
就像现在一样,你的sql查询无效。
答案 3 :(得分:1)
如果查询不成功mysql_query
返回布尔值...替换
$result = mysql_query($query);
with:
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
答案 4 :(得分:1)
我认为查询不正常,因此出现错误并且mysql_query返回false,这就是为什么你有一个布尔值
答案 5 :(得分:1)
阅读您的错误:
mysql_fetch_row()期望参数1为资源,布尔值为
所以这意味着$ result是一个布尔值。当mysql_query出错时会发生这种情况。这反过来又意味着您的SQL错误。
"SELECT * FROM user WHERE username='".$user2check."'";
应该更好。