首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从URL获取变量时出现MySQL错误

从URL获取变量时出现MySQL错误
EN

Stack Overflow用户
提问于 2012-01-08 12:44:35
回答 3查看 168关注 0票数 1

这是我拥有的代码,但是当我尝试从url: Warning: mysql_fetch_array():提供的参数不是有效的MySQL结果资源时,我得到这个错误

URL变量DEVID是一个由字符、数字、短划线和下划线组成的长字符串。有什么不对劲的想法吗?

代码语言:javascript
复制
<?php
$con = mysql_connect("server","username","password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("database", $con);

$result = mysql_query("SELECT * FROM $user WHERE DEVID=$DEVID");


while($row = mysql_fetch_array($result))
  {
  if (($row["FN"]) == NULL){
echo '<meta http-equiv="refresh" content="1;url=../register/default.php?user=';
echo $_GET["user"];
echo '&DEVID=';
echo $_GET["DEVID"];
echo '">Please hold, we are taking you to the registration page.<br/><br/>';
}

  }


mysql_close($con);
?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-08 12:53:48

如果$DEVID是一个VARCHAR域,那么在您的SQL查询中需要用单引号将它引起来:

代码语言:javascript
复制
SELECT * FROM $user WHERE DEVID='$DEVID'
票数 1
EN

Stack Overflow用户

发布于 2012-01-08 12:49:48

在查询之前,$DEVID设置在哪里?您使用的不是PHP,而是来自register_globals -string变量,对吗?这是2012年!人们什么时候会停止使用它?

票数 0
EN

Stack Overflow用户

发布于 2012-01-08 12:58:35

变量$user和$DEVID是否有值?它们被初始化了吗?

假设$user和$DEVID已经初始化,发生错误是因为mysql_query返回false,因为SQL查询在执行时会产生错误。

此外,您不应该使用直接从URL获得的变量。清除可能存在的单个qoute的值。使用mysql_real_esacape_string()。将SQL行替换为以下代码,以便在发生错误时查看mysql_query。

代码语言:javascript
复制
$DEVID=mysql_real_escape_string($DEVID);
$result = mysql_query("SELECT * FROM $user WHERE DEVID='$DEVID'") or die(mysql_error());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8775445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档