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

查看:171
本文介绍了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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆