SQL PHP 语法错误优化

Posted

技术标签:

【中文标题】SQL PHP 语法错误优化【英文标题】:SQL PHP Syntax ERROR Optimisation 【发布时间】:2011-02-19 04:56:36 【问题描述】:

我在此代码中遇到错误。有没有人看到我做错了什么。这是我得到的错误:

Died 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

这是代码:

   $depSQL = mysql_query("SELECT department_array FROM busDetails WHERE bus_id='".$bus_id."' LIMIT 1"); 
   while($row=mysql_fetch_array($depSQL)) 
    
     $depARRAY = $row["department_array"]; 
   
    $stSQL = mysql_query("SELECT department_id, staff_array FROM institute_departments WHERE department_id IN ($depARRAY)") or die ("Died ".mysql_error());
   while($get=mysql_fetch_array($stSQL))  
   $stARRAY = $get["staff_array"];
     $id =  $get["department_id"];
   $explodedST = explode(",", $stARRAY);
  foreach ($explodedST as $key2 => $value2) 
        if ($value2 == $bus_id) 
            unset($explodedST[$key2]);
        

$newST = implode(",", $explodedST);
echo $id . " " . $newST . "<BR/>" ;
$sql = mysql_query("UPDATE institute_departments SET staff_array ='$newST' WHERE     department_id='$id'");
 

【问题讨论】:

当我回显查询时,我得到这个:died: SELECT department_id, staff_array FROM institute_departments WHERE department_id IN (233,1,2,3,265,6,7,8,9,) 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 代码自动插入。任何帮助都会很棒!再次感谢 你知道怎么去掉多余的逗号吗?请你看看我的代码并建议我能做什么。 【参考方案1】:

回显您的查询,您可能会看到它。

例子:

echo $stSQL;

你的逗号太多了。看好 9:“7,8,9,)

【讨论】:

我收到此错误。我看不出有什么问题,你呢? died: SELECT department_id, staff_array FROM institute_departments WHERE department_id IN (233,1,2,3,265,6,7,8,9,) 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 你的逗号太多了。看好 9: "7,8,9,)" 你在 9 之后多了一个逗号 ','。去掉多余的 , 哈哈哈哈哈哈。多谢你们。好久没睡了。我认为这是我的代码。你知道如何删除一个空数组吗?我的 php 代码自动插入。任何帮助都会很棒!再次感谢。 你知道怎么去掉多余的逗号吗?请你看看我的代码并建议我能做什么。【参考方案2】:
$strArray = explode(',' , trim($depARRAY));

$count = count($strArray);
if(empty($strArray[$count-1]))
    unset($strArray[$count-1]);

$depARRAY = implode(',' , $strArray);

在插入值时,您必须注意 extra comma

【讨论】:

嗨 Gaurav,它不起作用。我回显了if($strArray[$count-1] == ',') unset($strArray[0]);前后的结果,结果是一样的。你知道其他方法吗?请帮忙。 Hu Gaurav,效果非常好!!我尝试编辑您的代码 - 我没有编辑权限大声笑:p 你犯了一个小错误。将$cont 更改为$count ;)

以上是关于SQL PHP 语法错误优化的主要内容,如果未能解决你的问题,请参考以下文章

SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误 — PHP — PDO [重复]

PHP 致命错误:未捕获的 PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误

PHP:您的 SQL 语法有错误,请查看手册

INSERT INTO 语句的语法错误

第 1 行的 ''')' 附近的 SQL 语法有错误

php中for和SQL更新的正确语法是啥?