SQL:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以了解要使用的正确语法 [英] SQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use
本文介绍了SQL:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以了解要使用的正确语法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '@LNG_ID := 16; 附近使用的正确语法;SELECT DISTINCT IF (ART_LOOKUP.ARL_KIND IN (3, 4), BRANDS.BRA_B' 在第 2 行
ERROR CODE
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@LNG_ID := 16; SELECT DISTINCT IF (ART_LOOKUP.ARL_KIND IN (3, 4), BRANDS.BRA_B' at line 2
这是我的 PHP 代码和我的查询
And this is my PHP code w/ my queries
<?php
if (!ini_get('display_errors')) {
ini_set('display_errors', '1');
}
//header("Content-type: text/html; charset=windows-1251");
$securecheck = 'live_search';
$search = $_GET['search'];
$search = str_replace(' ', '%', $search);
//$search = "%" . $search . "%";
if($search == ''){
die("empty query");
}
$query = mysql_query("SET @NUMBER := '" . $search . "';
@LNG_ID := 16;
SELECT DISTINCT
IF (ART_LOOKUP.ARL_KIND IN (3, 4), BRANDS.BRA_BRAND, SUPPLIERS.SUP_BRAND) AS BRAND,
ART_LOOKUP.ARL_SEARCH_NUMBER AS NUMBER,
ART_LOOKUP.ARL_KIND,
ART_LOOKUP.ARL_ART_ID,
DES_TEXTS.TEX_TEXT AS ART_COMPLETE_DES_TEXT
FROM
ART_LOOKUP
LEFT JOIN BRANDS ON BRANDS.BRA_ID = ART_LOOKUP.ARL_BRA_ID
INNER JOIN ARTICLES ON ARTICLES.ART_ID = ART_LOOKUP.ARL_ART_ID
INNER JOIN SUPPLIERS ON SUPPLIERS.SUP_ID = ARTICLES.ART_SUP_ID
INNER JOIN DESIGNATIONS ON DESIGNATIONS.DES_ID = ARTICLES.ART_COMPLETE_DES_ID
INNER JOIN DES_TEXTS ON DES_TEXTS.TEX_ID = DESIGNATIONS.DES_TEX_ID
WHERE
ART_LOOKUP.ARL_SEARCH_NUMBER = @NUMBER AND
ART_LOOKUP.ARL_KIND IN (1, 2, 3, 4) AND
DESIGNATIONS.DES_LNG_ID = @LNG_ID
GROUP BY
BRAND,
NUMBER
;
") or die (mysql_error());
echo $query;
$count = mysql_num_rows($query);
echo $count;
if($count > 0){
$sql = mysql_fetch_array($query);
do{
echo "<div>" . $sql['ART_COMPLETE_DES_TEXT'] . "</div>";
}while($sql = mysql_fetch_array($query));
}else{
echo "no results";
}
?>
推荐答案
实际上你不需要执行多个查询.您可以删除此行:
Actually you don't need to execute multiple queries. You may delete this lines:
SET @NUMBER := '" . $search . "';
@LNG_ID := 16;
并将所有 @NUMBER
和 @LNG_ID
替换为相应的 PHP 值,例如:
and replace all @NUMBER
and @LNG_ID
with corresponding PHP values, e.g.:
ART_LOOKUP.ARL_SEARCH_NUMBER = @NUMBER AND
会
ART_LOOKUP.ARL_SEARCH_NUMBER = '".$search."' AND
这篇关于SQL:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以了解要使用的正确语法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文