SQL Update行基于列索引

时间:2014-02-15 16:49:48

标签: php sql database

我正在使用DataTables和jEdtiable根据用户输入更新我的SQL数据库。

传递给我的PHP文件的数据是:


row_id = HTML表格中ID列的数据,也是我的SQL数据库中的主键。

column =已编辑的列的索引

value =要在表格上更新的新值


我需要使用SQL查询更新表,但是我无法找到在查询中使用列索引的方法来更新正确的行/列?

1 个答案:

答案 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,某些数据库框架等),应该有一些方法可以返回数据库中表的结构。您可以使用这些方法按顺序检索表的列名,并动态创建列映射数组。