Php GET ID在mysql中查找并显示信息

Php GET ID在mysql中查找并显示信息,php,get,get-request,Php,Get,Get Request,我正在尝试使用get id从mysql数据库获取信息。 我使用以下代码检查id是什么 $qry = "SELECT name,country FROM databasetable WHERE uid=$id"; 我得到一个错误,这意味着它找不到任何具有指定uid的条目。如果我将uid改为“仅限数字”,那么它可以工作,并且可以查找它。示例:?id=100000000工作正常,?id=1kKV0LEfMi。找不到请帮助我您需要在$id周围添加引号以允许查询中使用字符串

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

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

我得到一个错误,这意味着它找不到任何具有指定uid的条目。如果我将uid改为“仅限数字”,那么它可以工作,并且可以查找它。示例:?id=100000000工作正常,?id=1kKV0LEfMi。找不到请帮助我

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

$qry= "SELECT name,country FROM databasetable WHERE uid='$id'";
顺便问一下,你为什么要做
$id=htmlspecialchars($\u GET['id'])


这应该是
$id=mysql\u escape\u字符串($\u GET['id'])

“$id”您需要将查询更改为在uid值周围使用单引号,如下所示

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

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

这可能无助于回答您的问题,但您应该停止使用
MySQL_*函数。他们被弃用了。改为使用(从PHP5.1开始支持)或(从PHP4.1开始支持)。如果不确定要使用哪一个,那么发送到数据库的查询是什么?此外,
htmlspecialchars
不会停止SQL注入。您必须使用
mysql\u real\u escape\u string
,尽管它已经过时了(!),正如Matt所说。@D.Müller id不是数字。哎呀,刚刚注意到,是的。对不起,我也看到了。好的,当你在数据库中输入内容时,请确保它也存储为htmlspecialchars,否则你将无法从无法在php中替换文本的家伙那里查询它?我的意思是,对不起,你只是一个专家,祝你好运,当它们在同一个数据库中时,尝试从数据库中查询东西format@user1610582是的,为什么您不能查询未指定字符的字符串?胡说八道!它们之间有什么区别?@AppStore TL;DNE博士,如果你想在这里得到帮助。实际上,这个问题是向Andreas提出的,如果你不想在这方面帮助我,你就不应该回复。htmlspecialcars将一些字符编码到一个表单中,浏览器将按原样输出。mysql\u escape\u字符串将转义一些字符,以避免破坏mysql查询。
$qry = "SELECT name,country FROM databasetable WHERE uid='$id'";