2009-07-16 42 views
-2
function saveFile($catId,$docuTitle,$linkTitle) { 

$result = mysql_query("INSERT INTO categories (cd_title, cd_link) 
         VALUES ('$docuTitle','$linkTitle') WHERE c_name = '$catID'");  

      return 'yes'; 

     } 

我想根據選擇的catergory插入cd標題和cd鏈接。獲取此查詢中的錯誤

+1

什麼錯誤?我們可以獲得數據庫模式嗎?你的函數參數是否包含任何單引號? – 2009-07-16 13:36:15

+1

哦,請告訴我,這是一個測試類型的東西,並且實際上並沒有通過mysql_query()函數直接從您的網頁獲得sql可執行文件 – jlarson 2009-07-16 13:38:06

+1

在沒有連接的插入語句中,'WHERE'沒有任何意義。 – 2009-07-16 13:39:15

回答

2

編輯: 斯科特·桑德斯是正確的,你不能有一個WHERE在INSERT查詢語句。

原始回答: 您應該提供有關錯誤的更多信息,但您可能在變量$ docuTitle或$ linkTitle中引入了簡單的引號('),導致格式錯誤的查詢。

你應該要求使用它們之前逃離這些變量,以及$ CATID,用mysql_escape_string()和否則你的應用程序將很容易受到SQL注入。

您應該閱讀一些關於PDO的文檔,它是避免SQL查詢中這種錯誤的好工具,它對於進化和可維護性有很大的幫助。

2

你可能想:

INSERT INTO categories (cd_title, cd_link, c_name) VALUES ('$docuTitle','$linkTitle', '$catID') 

除非您要更新現有行,然後改變 'INSERT INTO' 到 'UPDATE'

1

要結合一個INSERT語句和UPDATE語句。

您需要選擇正確的語法:

INSERT INTO [TABLE] [COLUMNS] VALUES [VALUES] 

UPDATE [TABLE] SET [COLUMNS] = [VALUE] WHERE [where clause]