我从数组中获取一些值,并在SQL查询中对这些值进行匹配。
此代码如下:
foreach($files as $ex){
$search = substr($ex,3,4);
$sql = 'SELECT DISTINCT `pdb_code` FROM pdb WHERE `pdb_code` <> ' .$search. ' LIMIT 6';
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$pdb[] = $row['pdb_code'];
}
}
我遇到的问题是
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第1行'LIMIT 6'附近
请帮忙..谢谢
答案 0 :(得分:0)
添加引号:
$sql = 'SELECT DISTINCT `pdb_code` FROM pdb WHERE `pdb_code` <> "' .$search. '" LIMIT 6';
答案 1 :(得分:0)
当您在单引号中编写查询并再次在单引号中打印变量时,因此当您打印此查询时,您会看到查询结束如下:
'SELECT DISTINCT `pdb_code` FROM pdb WHERE `pdb_code` <> '
所以要让它一直读取你必须用双引号括起你的变量..我希望这个描述会有所帮助。你可以像任何一样写它..
'SELECT xyz FROM abc WHERE xyz = "'.$abc.'" ';
OR
"SELECT xyz FROM abc WHERE xyz = '.$abc.'"
答案 2 :(得分:0)
将其置于双引号中重写您的查询:
取而代之的是:
_curClusters
试试这个:
$sql = 'SELECT DISTINCT `pdb_code` FROM pdb WHERE `pdb_code` <> ' .$search. ' LIMIT 6';
答案 3 :(得分:0)
请不要使用mysql_query()函数 - 在php&lt;中不推荐使用它。 php7,因为php7它被删除。目前最好的做法是使用PDO。如果您必须以旧方式执行此操作,请使用mysqli_query。
在我看来,你能做的最好的事情如下:
$db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'username', 'password');
$statement = $db->prepare('SELECT DISTINCT `pdb_code` FROM pdb WHERE `pdb_code` <> :search LIMIT 6');
$statement->execute([':search' => $search]);
$resultAsAnArray = $statement->fetchAll(PDO::FETCH_ASSOC);