gpt4 book ai didi

php - PDO/mySQL 如何绑定(bind)多个值来存储多行

转载 作者:行者123 更新时间:2023-11-29 21:07:36 25 4
gpt4 key购买 nike

要通过 form method="post" 从网站存储 6 个发票项目,我使用了几个像这样的输入元素

    <input name="item[]" value="6 hour service"/>
<input name="item[]" value="1 days travel"/>
....

服务器端我将 $_POST['Item'] 复制到这样的数组

item[]= $_POST['Item'];

然后我可以访问 item[],它看起来像这样

[item] => Array
(
[0] => 6 hour service
[1] => 1 days travel
[2] => ....
)

然后是这个 SQL 语句

try {
$obj = $this->dbcon->prepare('INSERT INTO invoice_item
( ID, item)
VALUES(:ID,:item)');

for ($i=0;$i<6;$i++) {

if (!empty($item[0][$i])) {
$obj->bindValue(':ID', $this->dbcon->lastInsertId(), PDO::PARAM_INT);
$obj->bindValue(':item', $item[0][$i], PDO::PARAM_STR);
$succ = $obj->execute();
}
}
}

catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}

这对于固定数量的项目来说效果很好。
但是,当项目数量未知时,访问 $_POST、绑定(bind)它并存储它的正确方法是什么?

编辑:

如何直接迭代 $_POST["Item"] ?

最佳答案

检查$i是否小于项目数而不是小于固定值。

        for ($i=0;$i<count($item[0]);$i++) {

if (!empty($item[0][$i])) {

或者您可以使用foreach:

        foreach ($item[0] as $value) {

if (!empty($value)) {

关于php - PDO/mySQL 如何绑定(bind)多个值来存储多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36675076/

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