2010-02-10 130 views
0

我有如下圖所示,其插入一條記錄到表中的方法:插入記錄的MySQL

public static function AddCategory($categoryName) 
    { 
     $sql = 'INSERT INTO category(name) 
       VALUES(' . $category_name .')'; 
     $parameters = array('category_name' => $categoryName); 
     return DB::Execute($sql,$parameters); 
    } 

誰能告訴我,如果SQL語法是正確的?我無法插入任何記錄..我無法找到我的錯誤。 感謝

回答

1
public static function AddCategory($categoryName) { 
    $sql = 'INSERT INTO category (name) 
      VALUES (:category_name)'; 
    $parameters = array('category_name' => $categoryName); 
    return DB::Execute($sql,$parameters); 
} 
+0

謝謝!它實際上工作! :) – chupinette 2010-02-10 18:00:36

0

從我的簡短觀察這一行是多餘的:

$parameters = array('category_name' => $categoryName); 

您已經指定內部查詢本身插入的值。您現在只需要執行它。

0

我完全不明白你想要做什麼,一個有效的SQL INSERT sintax是:

INSERT INTO表1 VALUES(值1,值2,...)

,所以我想你的代碼應改爲類似:

public static function AddCategory($categoryName) 
    { 
     //I don't know the real name of the TABLE you want to update, so you have to replace CATEGORIES_TABLE with your table name 
     $sql = 'INSERT INTO CATEGORIES_TABLE VALUES(' . $categoryName .')'; 
     return DB::Execute($sql);  
    } 

我不知道是什麼DB ::執行呢,我想執行一個查詢。

僅供參考,以測試一個很好的辦法就是exectuing查詢之前添加以下行:

echo "<br>" . $sql . "</br>"; 

然後你把PHP所打印的結果和MySQL查詢瀏覽器來運行它,它會告訴你更多有關爲什麼查詢失敗的準確細節。

+0

謝謝!即時通訊將嘗試.. – chupinette 2010-02-10 17:00:55