【发布时间】:2011-02-16 01:26:19
【问题描述】:
对不起,如果这个问题对某些人来说似乎很容易,但我似乎无法弄清楚。有人告诉我我可以来这里,因为这里的人非常乐于助人。我对以下代码有问题。当 uid 被调用到 example page.php?uid=5 的 url 时,如果我执行 page.php?uid=letters,我会得到“一些代码”,我会被重定向到 page.php?uid=1。效果很好。但是如果用户应该输入page.php?uid=1letters 我会收到此错误..'where 子句'中的未知列'1gh'
警告:mysql_fetch_array() 期望参数 1 是资源,布尔值在第 173 行的 C:\wamp\www\page.php 中给出。
如果用户在获取 url id 的末尾输入不需要的字符,我只会收到此错误。我怎样才能防止这种情况发生我怎样才能让它重定向到page.php?uid=1...见下面的代码
$id = mysql_real_escape_string(@$_GET['uid']);
$query = mysql_query("SELECT user.* FROM user WHERE id = '$id'");
if ((mysql_num_rows($query)==0)) {
header("location:page.php?uid=1");
die();
}
else {
while($rows = mysql_fetch_array($query)){
$foo = $row['foo'];
echo "some code";
【问题讨论】:
-
为什么在 $_GET 请求中使用
@符号?为什么不只是:$id = mysql_real_escape_string($_GET['uid']);只是好奇... -
如果 'uid' 参数不在查询中,则尝试抑制错误/警告。
标签: php mysql mysql-error-1064