0

我正在尝试使用 GET id 从 mysql 数据库中获取信息。我使用以下代码来检查 id 是什么。

            $qry    = "SELECT name,country FROM databasetable WHERE uid=$id";

我收到错误,这意味着它找不到具有指定 uid 的任何条目。如果我将 uid 更改为仅数字,那么它可以查找它。示例: ?id=1000000000 工作正常, ?id=1kKV0LEfMi 。找不到请帮帮我

4

3 回答 3

1

您需要在 $id 周围添加引号以允许查询中的字符串

$qry= "SELECT name,country FROM databasetable WHERE uid='$id'";

顺便提一句。你为什么要这样做$id = htmlspecialchars($_GET['id']);

这应该是$id = mysql_escape_string($_GET['id']);

于 2012-08-20T18:19:18.163 回答
0
 '$id'  <-- first put the variable in single quotes. good practice. 

其次,如果您不使用特殊字符,请将其删除,因为这可能是您的问题。尝试剥离 html 特殊字符并重试

于 2012-08-20T18:19:27.790 回答
0

您需要将查询更改为在 uid 值周围加上单引号,如下所示

$qry = "SELECT name,country FROM databasetable WHERE uid='$id'";

话虽如此,您还确实需要考虑使用较新的 MySQL 连接支持(而不是 mysql_* 函数),并且您需要学习如何转义数据以防止 SQL 注入。

于 2012-08-20T18:21:09.490 回答