【问题标题】: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 '' at line 1您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法
【发布时间】:2013-11-22 19:47:19
【问题描述】:

我在 MYSQL 中遇到错误

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 '' at line 1

有人可以向我解释一下这个错误是怎么回事吗?谢谢。

PHP 代码:

<?php

$link = connectToDB();
 $strXML = "<chart caption='Factory Output report' subCaption='By Quantity' pieSliceDepth='30' showBorder='1' formatNumberScale='0' numberSuffix=' Units'>";




    $result = mysqli_query($link, "SELECT DISTINCT PROFILE FROM tbljocreator GROUP BY PROFILE");
    $show = mysqli_fetch_array($result);
    if($result) {
    while ($ors = mysqli_fetch_array($result)) {

    $strQuery = "select PROFILE, sum(MT) as totalLM from tbljocreator where PROFILE =" .$ors['PROFILE'];
    $result2 = mysqli_query($link, $strQuery) or die(mysqli_error($link));
    $getresult2 = mysqli_fetch_array($result2); 


    $strXML .= "<set label='" . $ors['profile'] . "' value ='" . $getresult2['totalLM'] . "' />";


    mysqli_free_result($result2);
    }
    }
    mysqli_close($link);
    $strXML .= "</chart>";

        echo renderChart("FusionCharts/Column3D.swf", "", $strXML, "JoCreator", 450, 300, false, true);

    ?>

请给我解释清楚。

【问题讨论】:

  • PROFILE 字段是 int 字段吗?如果不是,则需要添加单引号来表示字符串
  • 你能帮我解释一下吗?

标签: php


【解决方案1】:

听起来$ors['PROFILE'] 是一个空变量。在某处执行 print_r($ors) 并将您的查询更改为 $strQuery = "select PROFILE, sum(MT) as totalLM from tbljocreator where PROFILE = '" .$ors['PROFILE']."'"; 以便下次不会抛出该错误。

顺便解释一下,错误是因为如果变量为空,查询在=之后结束。由于它在这里需要一个参数,所以它会抛出错误。由于错误仅显示问题的最开始,即查询的最后,因此它是一个空字符串。 (靠近'')

【讨论】:

  • 我已经按照你所说的做了发布这个错误如果没有 GROUP 列混合没有 GROUP 列是非法的GROUP BY 子句
  • @user2958635 那就试试$strQuery = "select PROFILE, sum(MT) as totalLM from tbljocreator where PROFILE = '" .$ors['PROFILE']."' Group By PROFILE"
  • 这个错误是在我放 GROUP BY 之后出现的 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“X25”GROUP BY PROFILE' 附近使用正确的语法
  • @user2958635 很抱歉,如果没有更多数据库表信息,我将无法再帮助解决问题。您可以在问题中发布您的餐桌信息吗?
  • 这里是列信息 FieldTypeComment PROFILEvarchar(255) NULL DETAILvarchar(255) NULL COLORvarchar(255) NULL GAUGEdouble NULL WIDTHdouble NULL LENGTHdouble NULL QUANTITYint(11) NULL LMdouble NULL MTdouble NULL REFSOvarchar(255) NULL JODATEdate NULL STATUSvarchar(255) NULL JONUMBERvarchar(255) NULL PROD_GROUPvarchar(255) NULL PostingCodeint(11) NULL UNITvarchar(100) NULL
猜你喜欢
  • 2016-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多