gpt4 book ai didi

php - 如何使用 PHP 在单个 foreach 循环中将三个值添加到数据库中?

转载 作者:太空宇宙 更新时间:2023-11-03 11:46:11 24 4
gpt4 key购买 nike

我有一个以两个值作为键的输入表单,以这种方式构造:

<input name="verificarPago['.$x['pagoID'].'-'.$x['userID'].']" type="text">

因此,HTML 看起来像这样:

<input name="verificarPago[4-10]" type="text">

除此之外,我还有用户可以输入的值,例如“Juan”。

输入是以编程方式创建的,我想将它们的每三个值(在示例中:4、10、Juan)保存到数据库中。

因此,当用户提交表单时,我考虑使用 foreach 来访问该数组中的元素,但我的问题是:我如何分解键来访问这两个值分开?

我试过这个(我现在不考虑安全性,我试图证明这个概念):

              $verificar = $_POST['verificarPago'];
foreach ($verificar as $pago => $curso) {
//I'm pretty much stuck here.
$verificar= array_flip(explode("-", $verificar));

//I want to insert the three items into the database
$verificarPago = "INSERT pagosVerificados SET userID = '$usuario', pagoID = '$pago', cursoID = '$curso'";
$cargarPago = mysqli_query($conectar, $verificarPago);

}

我已经尝试向表单添加另一种输入类型,因此值不会在一起,但这样我应该在 foreach 中执行 foreach 并呈现重复的结果(并且也有错误)。

最佳答案

在不解决任何架构问题、添加错误检查或解决安全问题的情况下,这里是如何完成您所要求的

$verificar = $_POST['verificarPago'];
foreach ($verificar as $ids => $text) {
list($pagoID, $cursoID) = explode("-", $ids);

$sql = "INSERT INTO pagosVerificados (userID, pagoID, cursoID, someVarcharField)
VALUES ($usuario, $pagoID, $cursoID, '$text');";
$cargarPago = mysqli_query($conectar, $sql);

}

虽然这有点低效 - 为每次迭代执行插入。由于 mysql 支持批量插入,您可以修改查询的生成以利用它。

$verificar = $_POST['verificarPago'];
$rows = array();

foreach ($verificar as $ids => $text) {
list($pagoID, $cursoID) = explode("-", $ids);
$rows[] = "($usuario, $pagoID, $cursoID, '$text')";
}

$sql = "INSERT INTO pagosVerificados (userID, pagoID, cursoID, someVarcharField) VALUES "
. implode(',', $rows)
. ";";
$cargarPago = mysqli_query($conectar, $sql);

现在只需往返数据库一次

关于php - 如何使用 PHP 在单个 foreach 循环中将三个值添加到数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38625482/

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