在表中标识字段的通用方法

时间:2010-01-17 13:25:58

标签: php jquery database

我正在编写一个sql编辑器(sqlite3)。

我可以显示一个表并允许用户编辑表中的任何值,但我现在需要某种方法来识别编辑的值。问题是我不知道主键是什么,我不认为这是一个好主意说“更新表设置a = b其中x = 123和y = 123和z = 123和... “对于所有不是”a“的字段。

我正在使用jquery(和ajax)和php。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

如果您不知道主键是什么(或者您不知道是否有UNIQUE索引),那么您将无法做出多少选择:即使使用where子句中的所有字段,您也可以更新多行(用户想要编辑的行)

你真的需要一些方法来识别一条精确的线 - 这就是主键。


也许,出于好奇,你检查phpMyAdmin是如何做到的?
(我知道这不是SQLIte,我的MySQL - 但也许可以重用一般的想法?)

答案 1 :(得分:0)

您可以强制用户指定主键(或至少是UNIQUE),然后使用SHOW INDEX FROM tablehttp://dev.mysql.com/doc/refman/5.0/en/show-index.html

检索它

答案 2 :(得分:0)

如果您无法确定PK或UK列,那么您必须使用“其中x = 123且y = 123且z = 123”,但请记住添加LIMIT 1 - 然后您确定不要编辑多个记录。

答案 3 :(得分:0)

对于所有不是'的字段,发布更新'...​​确实不是一个好主意。您还应该包含一个,以及已编辑的行中的旧值。

相关问题