php代码中的SQL语法错误
我使用php代码中的SQL语法错误,php,mysql,Php,Mysql,我使用POST从android传递值,并使用PHP在sqldb中运行查询。我总是很紧张 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第1行的“”附近 如果我直接将值传递给POST[],代码工作正常 我经历了这么多,但没有问题解决我的问题。我也试过使用mysql\u real\u escape\u string($searchTermBits),但没有成功 PHP: <?php $username = "xxxx"; $password
POST
从android传递值,并使用PHP在sqldb中运行查询。我总是很紧张
您的SQL语法有错误;检查手册
对应于您的MySQL服务器版本,以便使用正确的语法
在第1行的“”附近
如果我直接将值传递给POST[],代码工作正常
我经历了这么多,但没有问题解决我的问题。我也试过使用mysql\u real\u escape\u string($searchTermBits)
,但没有成功
PHP:
<?php
$username = "xxxx";
$password = "xxxx";
$host = "xxxx";
$database = "xxxx";
$server = mysql_connect($host, $username, $password);
$connection = mysql_select_db($database, $server);
$search = $_POST["deskey"];
$search = explode(" ", $search);
$commonwords = "a,an,and,I,it,is,do,does,for,from,go,how,the,etc,in,on,are";
$commonwords = explode(",", $commonwords);
foreach ($search as $value)
{
if (!in_array($value, $commonwords))
{
$query[] = $value;
}
}
$query = implode(" ", $query);
$searchTerms = explode(" ", $query);
$searchTermBits = array();
foreach ($searchTerms as $term)
{
$term = trim($term);
if (!empty($term))
{
$searchTermBits[] = "description LIKE '%$term%'";
}
}
$myquery = "SELECT * FROM `logins` WHERE " . implode(' OR ', mysql_real_escape_string($searchTermBits)) . "";
$query = mysql_query($myquery);
if (!$query)
{
echo mysql_error();
die;
}
$data = array();
for ($x = 0; $x < mysql_num_rows($query); $x++)
{
$data[] = mysql_fetch_assoc($query);
}
echo json_encode($data);
mysql_close($server);
?>
echo$myquery的输出是什么?
试试这个:像“%”这样的描述。$term.“%”
您发布的查询看起来不错,但与代码中使用的不同。您能否发布echo$myquery
语句的确切输出。此语句必须是定义myquery
变量后的下一个语句。@user2269164您正在使用或内爆,结果查询有和非常奇怪,不是吗d注意:mysql.*
函数已被弃用,它们已从PHP7中删除,当您升级到该版本时,您的代码将停止工作。您不应该使用它们编写新代码,而应该使用。