0

我有一个 2 部分的 html / php 表单,其中一个 $_POST 值是 session_id(); m 这将是数据库表中的唯一 ID。

在表单的第一部分,用户输入他们的联系信息并将其插入 MySQL 数据库。

INSERT INTO $table ($columns) VALUES ($values)

在他们输入额外信息的表单的第二部分,如果 session_id() 相同,我只想更新所有正在提交的列,这些列总是与表单第一部分中的列不同. 如何在保持先前提交的数据完整的同时更新所有提交的列。

在这个例子中,$columns 和 $values 是 CSV 字符串,即

提交 1

$columns = "'SSID', 'Name', 'Email'";
$values = "'65464s4468fff9864wef68d', 'John Doe', 'someone@something.com'";

提交 2

$columns = "'SSID', 'Product', 'Comments'";
$Values = "'65464s4468fff9864wef68d', 'Apple', 'some comments'";

所以我只需要更新“产品”和“评论”列。我需要使用许多不同的表单动态地执行此操作,因此我宁愿不必指定要更新的列,因为它们已经是唯一被插入的列。

我正在尝试类似的事情:

INSERT INTO $table ($columns) VALUES ($values) ON DUPLICATE KEY UPDATE $columns = $columns

什么是正确的语法?目前这给了我一个语法错误

编辑:添加最后一行

4

1 回答 1

0

你也可以这样做:

REPLACE INTO $table ($columns) VALUES ($values);
于 2013-08-26T20:38:40.490 回答