php - MySQL 查询使用 $_GET

标签 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";

最佳答案

您正在获取用户的姓名并将其直接转换为整数,然后将其与姓名进行比较。这没有意义。

如果 $_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";

关于php - MySQL 查询使用 $_GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5035195/

相关文章:

java - 如何将数据从 FoxPro 迁移到 MySQL

php - mysql_query & update 查询未执行

php - cURL 在 POST 后更改 URL

javascript - 如何在 Javascript 中访问 JSON 数组

java - 我的登录身份验证 Servlet 遇到问题

php - 运行 php 算术时除以零

php - 无法在 Laravel 4 中设置缓存控制

php - 在准备好的 Jquery 文档上运行 php 脚本

mysql phpmyadmin 在与搜索特定字段名称的 table2 连接后更新 table1 列

mysql - 比较没有时间元素的日期时间字段