这是条件:在 html 和 php haivng 中有一个表单,它有大约 120 个字段,它用于一个网站我在提交时制作这个表单进入一个 php 页面,我首先使用 $_REQUEST[] 检索所有值,然后使用插入查询插入所有这些都在我的 mysql 数据库的同一张表中的特定列中。现在我将不得不再次执行所有过程来更新这些值。因为插入查询和更新查询的语法完全不同。
我不想再写 100 行代码。有什么方法可以使用我在插入查询中编写的代码来更新数据。?
这是条件:在 html 和 php haivng 中有一个表单,它有大约 120 个字段,它用于一个网站我在提交时制作这个表单进入一个 php 页面,我首先使用 $_REQUEST[] 检索所有值,然后使用插入查询插入所有这些都在我的 mysql 数据库的同一张表中的特定列中。现在我将不得不再次执行所有过程来更新这些值。因为插入查询和更新查询的语法完全不同。
我不想再写 100 行代码。有什么方法可以使用我在插入查询中编写的代码来更新数据。?
实际上,在 MySQL 中,插入的另一种语法与更新的语法非常相似。你可以写
insert customer set customerid=12345, firstname='Fred', lastname='Jones
等等
我个人更喜欢这种语法,因为很容易看出每个字段的值。对于具有长字段列表的记录尤其如此。
不利的一面是,它不是标准 SQL,因此如果您决定将应用程序移植到不同的数据库引擎,则必须重写所有插入。
我偶尔使用的另一个选项是编写一个小函数来创建插入和更新语句。那么无论生成的代码有多么不同,您的函数的语法都可以相同。
另一种选择,根据要求和密钥,您可以使用:
replace into tbl (<cols>) values (<vals>)
如果不存在则插入,或者根据键替换(在一个查询中插入/更新)
或者如果您只插入并且不想插入两次,您可以使用:
insert ignore into tbl (<cols>) values (<vals>)
如果记录已经基于键插入,则优雅地忽略它
INSERT INTO yourtable (field1, field2, field3, ...)
VALUES ($field1, $field2, $field3, ...)
ON DUPLICATE KEY UPDATE field1=VALUES(field1), field2=VALUES(field2), etc...
有关此构造的详细信息,请点击此处。