如何将数据库表中的一个值和 $_POST 中的另一个值插入另一个数据库表[重复]
Posted
技术标签:
【中文标题】如何将数据库表中的一个值和 $_POST 中的另一个值插入另一个数据库表[重复]【英文标题】:How to insert one value from a database table and another from $_POST into another database table [duplicate] 【发布时间】:2019-11-14 13:09:42 【问题描述】:我有一个 mysql 数据库查询嵌套在这样的 foreach 语句中:
foreach ($_POST['articles'] as $article => $number)
$sql_update2 = "INSERT INTO testmerrill.Device_Article_Connection (device_id, article_id)
VALUES ((MAX (device_id) FROM testmerrill.Devices),'$_POST['articles'][$article]))'";
query_db1($sql_update2);
上面的查询在这个之后运行:
$sql_update1 = "INSERT INTO testmerrill.Devices (device_name, device_manufacturer)
VALUES ('$device_name', '$device_manufacturer')";
query_db1($sql_update1);
此页面是我正在编写的 CRUD 程序的创建页面。我在这里使用两个表:Devices 和 Device_Article_Connection。我要做的是在我的 Device_Article_Connection 表中插入用户在提交时发布的多个选择语句选项,调用用户选择包含的与新“设备”相关联的选项的查询。我知道我目前的解决方案可能不是一种非常优雅的方法,但这就是我目前所处的位置。困难在于我不知道用户刚刚创建的新设备的 id,我需要它来将其与用户选择与之关联的文章相关联。我正在尝试使用 MAX 函数查找设备 id(因为用户刚刚添加的最后一个 id 应该是最大的),但我似乎无法让它工作,有一些我无法使用的语法错误精确定位。
感谢您的任何建议。
【问题讨论】:
你在使用mysqli吗? 而不是 query_db1() 尝试$conn = mysqli_connect(host,user,pass,dbname)
(在代码开头然后mysqli_query($conn, $sql_update)
query_db1() 函数工作正常,它只是公司更大数据库逻辑的一部分
如果您认为您的更新回答了我的问题,它不会。 mysqli 是用于连接 MySQL 的特定扩展。 PDO 也一样。您的问题的答案可能取决于您使用什么来连接 MySQL 数据库。
我的坏帕特里克,我的眼睛一定很糟糕!是的,我使用的是函数式方法(mysqli)
【参考方案1】:
如果你使用mysqli进行数据库连接,你可以使用insert_id
来解决这个问题:
$conn = new mysqli($server, $user, $pass, $db);
$q = $conn->prepare("INSERT INTO testmerrill.Devices (device_name, device_manufacturer) VALUES (?, ?)"); // Prepare the query
$q->bind_param("ss", $device_name, $device_manufacturer); // Bind variables to prevent SQL injection
$q->execute();
$last_id = $q->insert_id; //Represents the last inserted id
【讨论】:
以上是关于如何将数据库表中的一个值和 $_POST 中的另一个值插入另一个数据库表[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 MySQL 中,如何将一张表的内容复制到同一个数据库中的另一张表中?
在 MySQL 中,如何将一张表的内容复制到同一个数据库中的另一张表中?