我正在尝试使用GET id从mysql数据库获取信息。 我使用以下代码来检查id是什么。
$qry = "SELECT name,country FROM databasetable WHERE uid=$id";
我收到错误,这意味着找不到任何带有指定uid的条目。如果我将uid更改为仅数字,那么它可以查找它。示例:?id = 1000000000工作正常,?id = 1kKV0LEfMi。找不到请帮帮我
答案 0 :(得分:1)
您需要在$ id周围添加引号以允许查询中的字符串
$qry= "SELECT name,country FROM databasetable WHERE uid='$id'";
顺便说一句。你为什么要做$id = htmlspecialchars($_GET['id']);
?
这应该是$id = mysql_escape_string($_GET['id']);
!
答案 1 :(得分:0)
'$id' <-- first put the variable in single quotes. good practice.
其次,如果您不使用特殊字符,请将其取出,因为这可能是您的问题。尝试剥离html特殊字符,然后重试
答案 2 :(得分:0)
您需要将查询更改为围绕uid值使用单引号,如此
$qry = "SELECT name,country FROM databasetable WHERE uid='$id'";
话虽如此,您还需要考虑使用较新的MySQL连接支持(而不是mysql_ *函数),并且您需要学习如何转义数据以防止SQL注入。