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 语法有错误