2014-02-15 119 views
0

我正在使用DataTables和jEdtiable根據用戶條目更新我的SQL數據庫。基於列索引的SQL更新行

傳遞給我的PHP文件中的數據是:


ROW_ID =從HTML表中的ID列中的數據,同樣在我的SQL數據庫中的主鍵。

柱=已編輯

值的列的索引=新值將被放在桌子上


我需要使用SQL查詢來更新表,然而更新我不能找出一種方法來使用查詢中的列索引來更新正確的行/列?

+0

節目或再經過添加您的代碼,我們可以專門建議你:)謝謝 –

+0

@ code360還有什麼你會需要比變量名其他?對於像表名這樣的事情,你可以建議使用佔位符。沒有任何其他代碼影響我正在更新的問題。 – TheBritishBloke

+0

好的讓我試試 –

回答

1

您需要將列索引映射到列名稱。有幾個不同的方法可以做到這一點映射:

  1. 靜態。在服務器上的PHP代碼,存儲陣列,看起來是這樣的:

    $columnMap = array(0 => 'column_1_name', 1 => 'column_2_name'); 
    

    然後使用該數組像這樣找出列名在SQL查詢中使用:

    $columnName = $columnMap[$column]; // where $column is the column index passed to the PHP file. 
    

    最後,在更新SQL查詢中使用列名和值。確保正確地轉義該值以防止SQL注入。

    這種方法的缺點是,如果更改數據庫表結構,還必須更新代碼中的數組。如果您可以使用下述第二種方法,則此限制將消失。

  2. 動態。根據您用於連接數據庫的內容(PDO,某些數據庫框架等),應該有方法返回數據庫中表的結構。您可以使用這些方法按順序檢索表的列名,並動態創建列映射數組。

+0

工作很好,謝謝! – TheBritishBloke