MySQL Query使用$ _GET

1 php mysql

好吧,也许我有点过度,但我不明白为什么这不起作用!我的网站上有一个评论框,其中包含发布帖子的个人资料.我想在个人资料中显示他们的帖子.他们的个人资料页面是userinfo.php?user =(whatever)

此查询失败:

$query = "SELECT message,`date`,ip,name,website,id 
          FROM `guestbook_message`
          WHERE name=" . intval($_GET['user']) . "
          AND deleted=0
          ORDER BY `date` DESC";
Run Code Online (Sandbox Code Playgroud)

sha*_*mar 5

您将获取用户的名称并将其直接转换为整数,然后将其与名称进行比较.这根本不符合逻辑.

如果$_GET['user']是用户的ID,则将其与ID而不是与之进行比较name.

如果$ _GET ['user']是用户的用户名,则必须在用户名值周围加上引号.由于UserName值是一个字符串,您需要将其封装在引号中并删除intval.像这样做:

 $query = "SELECT message,`date`,ip,name,website,id
           FROM `guestbook_message`
           WHERE name='" . mysql_real_escape_string($_GET['user']) . "'
               AND deleted=0
           ORDER BY `date` DESC";
Run Code Online (Sandbox Code Playgroud)