gpt4 book ai didi

php - 将多个var值插入到同一个mysql表中

转载 作者:行者123 更新时间:2023-11-30 00:41:35 26 4
gpt4 key购买 nike

这是我的第一个“从头开始构建”的 PHP/MySQL 项目。我构建了一个非常简单的 HTML 表单,其中同一行重复多次:

<h2 style="margin-top:0">Current Projects</h2>      
Project: <input name="project1" type="text" size="40" value="1" />
Status: <input name="status1" type="text" size="40" value="1" />
Estimated Completion: <input name="estCompletion1" type="text" size="12" value="1" /><br />

Project: <input name="project2" type="text" size="40" value="2" />
Status: <input name="status2" type="text" size="40" value="2" />
Estimated Completion: <input name="estCompletion2" type="text" size="12" value="2" /><br />

Project: <input name="project3" type="text" size="40" value="3" />
Status: <input name="status3" type="text" size="40" value="3" />
Estimated Completion: <input name="estCompletion3" type="text" size="12" value="3" /><br />

我试图将所有这些同时写入同一个数据库表,但在不同的行上。

$sql = "INSERT INTO current_project (date, est_completion, project_name, status)
VALUES (NOW(), '$estCompletion1', '$project1', '$status1'),
(NOW(), '$estCompletion2', '$project2', '$status2'),
(NOW(), '$estCompletion3', '$project3', '$status3')";

这样做的问题是它会插入变量中的数据,即使它是空的。因此,如果用户仅在第一行字段(project1、status1 等)中输入数据,则其他 2 行将插入一个空行。

有没有办法,也许使用“if isset()”,这样我的数据库中就没有任何空白字段?

最佳答案

动态构建 SQL。

类似这样的事情:

$inserts = Array();
for($i=1; $i<=3; $i++) {
if (!$_POST["project".$i] && !$_POST["status".$i] && !$_POST["estCompletion".$i]) continue;
$inserts[] = "(NOW(), '".$_POST["estCompletion".$i]."', '".$_POST["project".$i]."', '".$_POST["status".$i]."')";
}
if (Count($inserts)>0) {
$sql = "INSERT INTO current_project (date, est_completion, project_name, status)
VALUES (" . implode("), (", $inserts) . ")";
}

此时 $sql 应该仅对提交所有三个字段的行进行完整的 SQL 查询。

关于php - 将多个var值插入到同一个mysql表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21734927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com