PHP MySQL_fetch_array错误(给定布尔值)

时间:2013-08-24 15:29:17

标签: php mysql

我目前正在处理用户个人资料页面。代码应该使用$ _GET函数从URL获取用户名。但是,当我想回应这些数据时,它会产生一个奇怪的错误,

( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\pvp\user.php on line 22
Call Stack
#   Time    Memory  Function    Location
1   0.0010  675120  {main}( )   ..\user.php:0
2   0.0111  697392  mysql_fetch_array ( )   ..\user.php:22

这是代码:

require 'includes/connection.php';
require 'includes/common.php';
if (empty($_SESSION['user'])) {
    echo '<a href="login.php">login here</a> to view this profile!';
}
else {
    echo 'you are logged in!';
    if (isset($_GET['user'])) {
        $user = $_GET['user'];
        echo $user;
        $query = "SELECT * FROM  `users`  WHERE username = $_GET[user]";
        $result = mysql_query($query);
        $post = mysql_fetch_array($result);
    }
    else {
        echo 'No user selected';
    }
}

我做错了什么?请帮助我谢谢

5 个答案:

答案 0 :(得分:2)

很明显,我的查询有错误,所以在

之前打印出你的mysql错误
$user=$_GET['user'];
$query = "SELECT * FROM  `users`  WHERE username = '$user'";
$result = mysql_query($query) or die(" DB Error:".mysql_error());

答案 1 :(得分:0)

试试这个

   $myvar = mysql_real_escape_string($_GET['user'])
 $query = "SELECT * FROM  `users`  WHERE username = '".$myvar."'  ";

你应该在使用它之前转义你的变量。

答案 2 :(得分:0)

php doc:mysql_query() returns a resource on success, or FALSE on error。如果你有一个布尔值而不是一个资源,那就意味着你有一个错误。

检查您的查询字符串:$query = "SELECT * FROM users WHERE username = ".$user;这是问题所在。

如果username是字符串,请添加引号('your string var'):$query = "SELECT * FROM users WHERE username = '".$user."';

答案 3 :(得分:0)

mysql_query()的第二个参数是连接资源

您必须在'includes / connection.php'中建立连接时定义连接变量 像这样:

$conn=mysql_connect('host','user','password');

你必须将该变量放在

$result=mysql_query($query,$conn);

答案 4 :(得分:0)

当用户名是字符串时,您必须使用引号

$ query =&#34; SELECT * FROM users WHERE username =&#39;&#34;。$ userName。&#34;&#39; &#34 ;;

由于您的查询错误,mysql_fetch_array会获得一个空结果,因此会抛出错误。 !