我在我的web应用程序中有一个功能,其中一个表是“快速编辑”,也就是说,它的单元格可以直接编辑。当用户保存其更改时,客户端会将更改的行(其中包含更改的列(不包括未更改的列,仅用于说明))及其对应的ID发送到服务器。如何绑定PDO中的当前列值?
为了有效地做UPDATE
查询,我使用了PDO准备的语句功能。以下是我目前来到了一个等效的语句:
UPDATE table
SET
col1 = :arg_col1,
col2 = :arg_col2,
col3 = :arg_col3
WHERE
ID = :arg_ID
于是我想出了这个问题,我不能设置一个列到它的当前值。因为只有一行中的编辑列被提交,所以我只需要将数据绑定到它们各自的列。例如,如果只col1
和col2
发生变化,由此产生的说法应该是
UPDATE table
SET
col1 = 'new data',
col2 = 'an edit',
col3 = col3 /* Use the current value of the column */
WHERE
ID = 153454
直接修改声明肯定会抵消使用同样准备好的声明中更新多行的性能改进。可悲的是,PDO似乎没有将列绑定到当前值的选项。
我应该如何解决这个问题?
补充:我不想把所有的列,出于性能的考虑。
存储在一个变量中的值和列绑定到变量 – Satya 2013-04-25 06:41:58
尝试在真实第一这个“有效”的解决方案。你会感到惊讶。 – 2013-04-25 07:39:25
@YourCommonSense是的。我只是充分利用每一个机会。 :) – 2013-04-25 07:41:38