Php 如何在MySQL数据库中存储数组值
我不知道如何在数据库中存储我的数组数据,我只知道获取和显示数据。任何建议或歧视对我来说都是可以的,因为我不懂逻辑,我是个新手Php 如何在MySQL数据库中存储数组值,php,sql,arrays,Php,Sql,Arrays,我不知道如何在数据库中存储我的数组数据,我只知道获取和显示数据。任何建议或歧视对我来说都是可以的,因为我不懂逻辑,我是个新手 <?php $cart_statement = "SELECT * FROM user_cart WHERE email = '$email'"; $cart_res = mysqli_query($con,$cart_statement); $storeArray = Array(); $cart_num = mysqli_
<?php
$cart_statement = "SELECT * FROM user_cart WHERE email = '$email'";
$cart_res = mysqli_query($con,$cart_statement);
$storeArray = Array();
$cart_num = mysqli_num_rows($cart_res);
while ($cart_row = mysqli_fetch_array($cart_res)) {
echo $storeArray[] = $cart_row['product_name'].",";
}
?>
mysql表用户购物车
|-——————————————————————————|购物车标识|产品名称|
|————————————————————————
|-————————————————————————————|
|-————————————————————————————|
|-—————————————————————— 我想要的输出是Laptop1,Laptop2 存储在tbl_订单中 |-——————————————————————————
|订单号-产品-
|——————————————————————————
|--1-|-Laptop1,Laptop2-|
|-————————————————————————————
对不起,我不知道如何在这里制表,我不确定我是否理解你的问题。您是否在询问如何将数组中的数据插入表的多行中?为此,您只需要创建多个
INSERT
查询,每个数组元素一个查询,并使用绑定到它们的适当数据执行查询。为此,遍历数组是最容易的
例如:
foreach ($cart_row as $value) {
$stmt = "INSERT INTO user_cart(ProductName, Qty, Price) VALUES (?, ?, ?)";
$stmt = mysqli_stmt_prepare($con, $stmt);
mysqli_stmt_bind_param($stmt, "sii", $value["product_name"], $value["quantity"], $value["price"]);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
}
此函数在此处插入多行相同的问题 必须将表的名称作为第一个参数传递,第二个参数传递一个关联数组,该数组将列的名称作为键,如$data=['column_name'=>$value] 这是代码,希望对您有所帮助
public function insert($table, $data)
{
$query='INSERT INTO '.$table.' (';
foreach($data as $key => $value)
{
$query .= $key.',';
}
$query = substr($query, 0, -1);
$query .= ') VALUES (';
foreach($data as $key => $value)
{
$query .= ':'.$key.',';
}
$query = substr($query, 0, -1);
$query .= ');';
$insert = $this->db->prepare($query);
$insert->execute($data);
}
要存储数组,必须将其序列化以将其保存在单个字段中,或将单个值存储在不同的字段中。将其作为一个值插入我的表dataOh,那么您希望在单个字段中存储多个值吗?没有内置的方法可以做到这一点,你必须决定自己想要的格式。您可以使用infrade()函数从数组中创建一个分隔列表并存储它,或者使用serialize()函数从中自动创建一个更健壮但可读性较差的字符串。这几乎解决了我的问题,但我得到了Laptop1、Laptop2、Laptop1、Laptop2?我使用内爆();哦,对不起,我刚才加倍了回声:)仍然是你对我很有帮助的最好回答:非常感谢:)