2015-12-21 41 views
1

這裏是我的查詢:爲什麼我的語法錯誤沒有無效令牌?

"UPDATE tbl_pedidos_produtos SET status = CASE 
     WHEN id IN (SELECT produto_id FROM tbl_pedidos_cotacaos_produtos) THEN 4 
     ELSE 3 END WHERE pedido_id = ".$pedidosExpirados[$i]["pedido_id"] 

然後:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 3 

我真的不知道我在做什麼錯。這個不成立。

+0

嘗試把',而不是僅僅'END' END CASE'。 –

+0

這實際上給了我另外一個錯誤:'在第3行使用'CASE WHERE pedido_id = 1'附近的正確語法' –

+0

是的,對不起。這是存儲程序。 –

回答

-3
$query = 'UPDATE tbl_pedidos_produtos SET status = CASE 
    WHEN id IN (SELECT produto_id FROM tbl_pedidos_cotacaos_produtos) THEN 4 
    ELSE 3 END WHERE pedido_id = '.$pedidosExpirados[$i]["pedido_id"]; 
+0

有什麼區別? –

+0

它沒有區別。 –

+0

有時它不會獲得數組的索引,因爲沒有使用正確的引號。 –

-2
"UPDATE tbl_pedidos_produtos SET status = CASE 
    WHEN id IN (SELECT produto_id FROM tbl_pedidos_cotacaos_produtos) THEN 4 
    ELSE 3 END WHERE pedido_id = '".$pedidosExpirados[$i]["pedido_id"]."' "; 
+0

這將消除錯誤,但它是一個數字,而不是一個字符串。 –

+0

請不要在沒有支持文本的情況下提交代碼。明確你的改變。說明爲什麼這將解決OP的問題。幫助別人理解。 – APC

相關問題