首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无效查询: SQL语法出现错误;请检查与MySQL服务器版本对应的手册,以获得正确的语法。

无效查询: SQL语法出现错误;请检查与MySQL服务器版本对应的手册,以获得正确的语法。
EN

Stack Overflow用户
提问于 2015-09-12 07:49:07
回答 6查看 2.2K关注 0票数 0

当运行此脚本时:

代码语言:javascript
复制
<?php
      $username = "root";
      $host = "localhost";
      $pass = "mypass";
      $db = "api";
      $key = $_GET['key'];
      mysql_connect("$host", "$username", "$pass")or die("cannot connect"); 
      mysql_select_db("$db")or die("cannot select DB");
      $key = stripslashes($key);
      $key = mysql_real_escape_string($key);
      $result = mysql_query("SELECT * FROM keys WHERE key='. $key .'");
      if (!$result) { // add this check.
         die('Invalid query: ' . mysql_error());
      }else{
         echo "done";
      }
?>

它向我显示了错误:

无效查询:您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以获得正确的语法,以使用“key=”附近的键。aL6MP .'‘在第1行

EN

回答 6

Stack Overflow用户

发布于 2015-09-12 07:51:18

在传递连接中的变量时,不应使用双引号:

代码语言:javascript
复制
  mysql_connect($host, $username, $pass) or die ("Could not connect to Server");

删除'$key'之间的空格,您也不必连接。

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM keys WHERE key='$key'");

或者让它更简单:

代码语言:javascript
复制
$que = "SELECT * FROM keys WHERE key='$key'";
$result = mysql_query($que);

从分解的mysql_*函数转移到mysqli或PDO。

票数 0
EN

Stack Overflow用户

发布于 2015-09-12 07:52:09

sql中的单引号和双引号不匹配。

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM keys WHERE key='". $key ."'; ");
票数 0
EN

Stack Overflow用户

发布于 2015-09-12 07:55:24

你漏掉了一些引号。将查询更改为

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM keys WHERE key='".$key ."'");

或者不要使用连接,因此您使用双引号。

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

https://stackoverflow.com/questions/32536496

复制
相关文章

相似问题

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