使用准备好的语句将PHP foreach数组插入mysql
这是我的困境,我不知所措。我正试图通过使用一条准备好的mysql语句在数组中循环添加多个值到数据库中:使用准备好的语句将PHP foreach数组插入mysql,php,mysql,foreach,prepared-statement,sql-insert,Php,Mysql,Foreach,Prepared Statement,Sql Insert,这是我的困境,我不知所措。我正试图通过使用一条准备好的mysql语句在数组中循环添加多个值到数据库中: 如果我在foreach循环中“执行”语句,它只会添加 数组中的最后一个条目 如果我在循环之外“执行”它,它会将3个单独的行插入数据库。我想在一个created now()日期和行下填写所有列 如果我在foreach循环之前准备$stmt,那么它将错误为未定义变量。所以我把它放在循环中定义之后,即使在w3中,它表明可以在设置参数之前定义“bind_param”变量,我也不理解。谢谢 forea
- 如果我在foreach循环中“执行”语句,它只会添加
数组中的最后一个条目李>
- 如果我在循环之外“执行”它,它会将3个单独的行插入数据库。我想在一个created now()日期和行下填写所有列李>
- 如果我在foreach循环之前准备$stmt,那么它将错误为未定义变量。所以我把它放在循环中定义之后,即使在w3中,它表明可以在设置参数之前定义“bind_param”变量,我也不理解。谢谢
foreach ($products as $v) { $product_was = $v['name']; $product_now = $v['name']; $was = $v['was']; $now = $v['now']; $stmt = $conn->prepare("INSERT INTO $table_name (date_created, $product_was, $product_now) VALUES (now(), ?, ?)"); $stmt->bind_param("ss", $was, $now); $stmt->execute(); } $stmt->close(); $conn->close();
- 如果我在循环之外“执行”它,它会将3个单独的行插入数据库。我想在一个created now()日期和行下填写所有列李>
$product\u过去是
现在是是一样的:$v['name']
)每个产品的表名和字段名真的会改变吗?我的表名是固定的,所以只有一个表。但我对不同的产品有不同的专栏。然后,我将每个产品分为两列,分别为“过去的产品名称”和“现在的产品名称”。我这样做的唯一原因是我试图每天存储一些产品的价格,所以这不像一种产品有一个价格。它将有许多价格。我的代码根据需要将价格放在正确的列中,因此“name”对我来说很有用,上面稍微简化了一点,但这是让它一次绑定一行的顺序和定位!?您的表是什么样子的?您有两个相同的列名,这似乎不正确?($product\u过去是
现在是是一样的:$v['name']
)每个产品的表名和字段名真的会改变吗?我的表名是固定的,所以只有一个表。但我对不同的产品有不同的专栏。然后,我将每个产品分为两列,分别为“过去的产品名称”和“现在的产品名称”。我这样做的唯一原因是我试图每天存储一些产品的价格,所以这不像一种产品有一个价格。它将有许多价格。我的代码根据需要将价格放在正确的列中,因此“name”对我来说很有用,上面稍微简化了一点,但这是让它一次绑定一行的顺序和定位!?