Mysql windows IIS server 2003上的SQL查询使用传递的变量jQuery AJAX中断
在当前的项目中,我遇到了一个奇怪的问题。我有一个html页面,它对php文件执行AJAX调用,并传递一个变量。php文件使用此变量创建SQL查询,生成XML文件,并返回结果 在我的网络服务器上,这一切都很好。但是,当移动到Windows 2003 IIS(永久主服务器)服务器时,它会中断 迄今为止的观察结果。。。 此操作在windows server上中断:Mysql windows IIS server 2003上的SQL查询使用传递的变量jQuery AJAX中断,mysql,iis,jquery,windows-server-2003,Mysql,Iis,Jquery,Windows Server 2003,在当前的项目中,我遇到了一个奇怪的问题。我有一个html页面,它对php文件执行AJAX调用,并传递一个变量。php文件使用此变量创建SQL查询,生成XML文件,并返回结果 在我的网络服务器上,这一切都很好。但是,当移动到Windows 2003 IIS(永久主服务器)服务器时,它会中断 迄今为止的观察结果。。。 此操作在windows server上中断: $qry = "SELECT * FROM structure_name WHERE ID = $variable ORDER by I
$qry = "SELECT * FROM structure_name WHERE ID = $variable ORDER by ID ASC";
$results = mysql_query($qry);
此操作在windows server上中断:
$variable = 5;
$qry = "SELECT * FROM structure_name WHERE ID = $variable ORDER by ID ASC";
$results = mysql_query($qry);
$variable = 5;
$qry = "SELECT * FROM structure_name WHERE ID = " + $variable + "ORDER by ID ASC";
$results = mysql_query($qry);
此操作在windows server上中断:
$variable = 5;
$qry = "SELECT * FROM structure_name WHERE ID = $variable ORDER by ID ASC";
$results = mysql_query($qry);
$variable = 5;
$qry = "SELECT * FROM structure_name WHERE ID = " + $variable + "ORDER by ID ASC";
$results = mysql_query($qry);
这项工作:
$qry = "SELECT * FROM structure_name WHERE ID = 5 ORDER by ID ASC";
$results = mysql_query($qry);
因此,服务器似乎不喜欢在查询字符串中包含变量。
有什么建议吗?您看到了什么错误消息?如果您没有看到错误(或者只是收到一个HTTP 500错误),那么在PHP.ini文件中打开错误或查看PHP错误日志。这将给我们一些很好的洞察到底出了什么问题 不过,您的第三个陈述确实存在两个问题:
$variable = 5;
$qry = "SELECT * FROM structure_name WHERE ID = " . $variable . " ORDER by ID ASC";
$results = mysql_query($qry);
另一个想法:使用MySQL分析器(http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html)查看要发送到MySQL服务器的SQL语句。可能是您的MySQL服务器正在生成错误。您还可以查看MySQL是否有可以检查的错误日志
此外,您可能希望转义输入以避免SQL注入攻击。尝试使用以下方法:
$variable = 5;
$qry = sprintf("SELECT * FROM structure_name WHERE ID = %d ORDER by ID ASC",
mysql_real_escape_string($variable));
$results = mysql_query($qry);
有关mysql\u查询和sql注入攻击的更多信息,请访问以下链接: