当前位置: 首页 > 知识库问答 >
问题:

如何从数据库中生成的动态字段中插入值

皮景龙
2023-03-14

我有这个生成动态字段的示例代码。

我的问题是我不知道如何将数据插入数据库。

我尝试过内爆,但结果不是我想要的格式。

implode (',', $name);
implode (',', $sweets);
implode (',', $fruits);
implode (',', $drinks);

这是我的专栏(id、姓名、糖果、水果、饮料)

所以如果我生成3行,它应该像这样插入

ID | NAME | SWEETS | FRUITS | DRINKS

1 | mark | cake | apple | 1

2 | jenny |candy | mango | 2

3 | randy | choco | ORANGE | 3

事实上,我不知道这是否可能。谢啦

小提琴

https://jsfiddle.net/jqj1h4vb/2/

共有1个答案

孟新知
2023-03-14


在测试代码之前,有几件事需要注意:
1。我注意到您的代码中有一些复数不一致的地方,这些地方可能需要调整表单字段名称和数据库列名。希望我猜对了,你可以复制粘贴我的代码来让它工作。
2。还要注意,我的代码期望表单数据被发布。如果您以查询字符串的形式提交表单数据,由于各种浏览器中的查询字符串限制,并且取决于用户一次提交多少数据,表单数据可能会被砍掉,也可能不会被砍掉。
3。此外,我的代码假设数据库的主字段自动增加,并且您使用的是MySQL或基于SQL的数据库,因此在插入时不需要指定ID
4。我还希望您能在代码中添加某种安全性,例如洪水控制、验证码或不可见验证码等,以防止任何一个用户淹没您的数据库,直到它达到极限。

以下是PDO解决方案

<?php
function getPostArray($v)
{
    if(!isset($_POST[$v]))return [];
    if(!is_array($_POST[$v]))return [$_POST[$v]];
    return $_POST[$v];
}

$n = getPostArray('name');
$s = getPostArray('sweet');
$f = getPostArray('fruit');
$d = getPostArray('drinks');

$insertQuery = [];
$insertData = [];
foreach($n as $k=>$v)
{
    $insertData[] = array_key_exists($k, $n) ? $n[$k] : '';
    $insertData[] = array_key_exists($k, $s) ? $s[$k] : '';
    $insertData[] = array_key_exists($k, $f) ? $f[$k] : '';
    $insertData[] = array_key_exists($k, $d) ? $d[$k] : '';
    $insertQuery[] = '(?, ?, ?, ?)';
}
// assuming your table is named `MyTable`
$sql = 'INSERT INTO `MyTable` (name, sweets, fruits, drinks) VALUES ';
if(!empty($insertQuery))
{
    $sql .= implode(', ', $insertQuery);

    // assuming you have a valid PDO $db connection open
    if(isset($db))
    {
        $stmt = $db->prepare($sql);
        $stmt->execute($insertData);
    // otherwise you just wanna see the query
    } else {
        printf("<pre>$sql\n%s</pre>",print_r($insertData,true));
    }
}
 类似资料:
  • 问题内容: 我正在尝试根据此文档http://wtforms.simplecodes.com/docs/1.0.2/specific_problems.html#dynamic-form-composition在WTForms中生成具有动态字段的表单 我有这个子窗体类,它允许用户从列表中选择要购买的物品: 购物商品将有多个类别,因此我想根据用户选择的类别生成一个动态选择字段: 但出现以下错误: 我

  • 我有2列的jtable,然后我想把它的值插入数据库; 我知道这可以用像.. 问题是..getRowCount不知道该行是否为空,那么在数据库中,该空值仍将被插入(它将在数据库中生成我的自动增量值) 我的问题是如何从jtable中插入数据库,但是空行不会插入? 如果我要求太多,请给我一个处理空行的线索, 原谅我的英语 下面是向数据库中添加数据的坏方法

  • 我想在Jaspersoft Studio中的报表中的详细信息带中插入来自数据库的图像。 JPG图像保存在MySQL中的longblob类型的imgdata字段中。 我试图将此表达式放在Image元素中: 在第一种情况下,我得到以下错误: ...在第二种情况下,这个错误是: 我的问题是:如何将数据库中的图像插入到JasperReports的报表中?

  • 我是新来的Laravel。我正在寻找一种方法来插入一个值到特定的字段,如自动每当行插入到DB表。 我发现只有方式使用

  • 目前,我试图修改我的属性文件,以插入这些特殊字符,但它插入作为一个问号,而不是gulidsymbol,请查找以下变化。 如果有任何修改或错误,请帮助我。