当运行此脚本时:
<?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行
发布于 2015-09-12 07:51:18
在传递连接中的变量时,不应使用双引号:
mysql_connect($host, $username, $pass) or die ("Could not connect to Server");删除'$key'之间的空格,您也不必连接。
$result = mysql_query("SELECT * FROM keys WHERE key='$key'");或者让它更简单:
$que = "SELECT * FROM keys WHERE key='$key'";
$result = mysql_query($que);从分解的mysql_*函数转移到mysqli或PDO。
发布于 2015-09-12 07:52:09
sql中的单引号和双引号不匹配。
$result = mysql_query("SELECT * FROM keys WHERE key='". $key ."'; ");发布于 2015-09-12 07:55:24
你漏掉了一些引号。将查询更改为
$result = mysql_query("SELECT * FROM keys WHERE key='".$key ."'");或者不要使用连接,因此您使用双引号。
$result = mysql_query("SELECT * FROM keys WHERE key='$key'");https://stackoverflow.com/questions/32536496
复制相似问题