0

我目前正在处理用户个人资料页面。代码应该使用 $_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';
    }
}

我究竟做错了什么??请帮帮我谢谢

4

5 回答 5

2

很明显,你的查询有我的错误,所以之前打印出你的mysql错误

$user=$_GET['user'];
$query = "SELECT * FROM  `users`  WHERE username = '$user'";
$result = mysql_query($query) or die(" DB Error:".mysql_error());
于 2013-08-24T15:34:50.687 回答
0

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

$query = "SELECT * FROM users WHERE username = '".$userName."' ";

由于您的查询是错误的 mysql_fetch_array 得到一个空的结果,所以它会抛出一个错误。!

于 2013-08-24T15:53:32.927 回答
0

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

在“includes/connection.php”中进行连接时,您必须定义一个连接变量,如下所示:

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

你必须把那个变量放在

$result=mysql_query($query,$conn);
于 2013-08-24T15:45:52.070 回答
0

尝试这个

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

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

于 2013-08-24T15:31:00.187 回答
0

php 文档: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."';

于 2013-08-24T15:40:46.830 回答