簡體   English   中英

Codeigniter如何解決MySql Query語法中的錯誤?

[英]How to solve this error in MySql Query syntax in codeigniter?

這是我得到的錯誤。

您的SQL語法有誤; 檢查與MySQL服務器版本相對應的手冊,以在第1行的' Sensor ='sklfj', Lens ='lkjsdf', IR ='lkjdsf', Audio ='kjlasf','WDR'附近使用正確的語法

UPDATE `hdtvicameras_spec`
SET `Resolution` = 'd',
 `Image` `Sensor` = 'sklfj',
 `Lens` = 'lkjsdf',
 `IR` = 'lkjdsf',
 `Audio` = 'kjlasf',
 `WDR` = 'lkjsf1',
 `ICR` = 'klasjf',
 `IP` `Rating` = 'lkjsdf',
 `Zoom` = 'ljs'
WHERE
    `product_id` = '46'

Product_model.php

$this->db->where('product_id', $product_id);
$this->db->update($tbname, $spec_array);

var_dump($spec_array)這就是我得到的

array(10) { 
    ["Resolution"]=> string(5) "first" 
    ["Image Sensor"]=> string(6) "second" 
    ["Lens"]=> string(6) "third " 
    ["IR"]=> string(6) "fourth" 
    ["Audio"]=> string(6) "fifthe" 
    ["WDR"]=> string(6) "sisxth" 
    ["ICR"]=> string(5) "seven" 
    ["IP Rating"]=> string(5) "eight" 
    ["Zoom"]=> string(4) "nine" 
    ["SD Card"]=> string(3) "ten" 
}

數組中所有這些鍵值都是從數據庫中獲取的,該數據庫是任何產品的規范名稱。

密鑰名稱中的空格似乎有一些錯誤。 有人可以幫我解決這個問題嗎?

使用這樣的查詢並檢查:

UPDATE `hdtvicameras_spec`
SET `Resolution` = 'd',
 `Image Sensor` = 'sklfj',
 `Lens` = 'lkjsdf',
 `IR` = 'lkjdsf',
 `Audio` = 'kjlasf',
 `WDR` = 'lkjsf1',
 `ICR` = 'klasjf',
 `IP Rating` = 'lkjsdf',
 `Zoom` = 'ljs'
WHERE `product_id` = '46'

由於您添加了引號,對於名稱超過1個字詞的字段名稱,其顯示錯誤。

我認為您在這里有錯誤:

 `Image` `Sensor` = 'sklfj', 

映像之后,您沒有賦予它任何價值。

由於圖像傳感器是一列帶有空格的列,因此會出現錯誤。 CI會將`添加到每個帶有空格的字段中。 在MySQL的列中使用空格不是一個好習慣。

為了解決此問題,您應該刪除空間或以下述形式編寫查詢,然后將其傳遞給$this->db->query()

UPDATE `hdtvicameras_spec` 
SET `Resolution` = 'd', `Image Sensor` = 'sklfj', `Lens` = 'lkjsdf', `IR` = 'lkjdsf', `Audio` = 'kjlasf', `WDR` = 'lkjsf1', `ICR` = 'klasjf', `IP Rating` = 'lkjsdf', `Zoom` = 'ljs' 
WHERE `product_id` = '46'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM