【问题标题】:How to insert multidimensional array into database?如何将多维数组插入数据库?
【发布时间】:2015-06-08 20:52:29
【问题描述】:

我的数组,即 $_SESSION['cart_array'] 包含

Array ( [0] => Array ( [item_id] => qwerty [quantity] => 2 [unit_price] => 500 ) [1] => Array ( [item_id] => skjbm [quantity] => 3 [unit_price] => 100 ) ) 

要插入我的数据库代码的代码是

 foreach($_SESSION['cart_array'] as $each_item){ $sql=mysql_query("INSERT INTO product_added(id,ip_address,order_id,email,item_id,unit_price,quantity,total,pay_status)values('','','','','".$each_item['item_id']."','".$each_item['quantity']."','".$each_item['unit_price']."','','')");
 if(!mysql_query( $sql)){
    // maybe not the best use of `die` here?
    die('Error: ' . mysql_error());
}echo "record added"; }

我的问题是,当我运行脚本时,它只添加一个项目,即:item_id=qwerty,quantity=2 和 unit_price=500 到表中,因为我在 $_SESSION['cart_array'] 中有两个项目。

并且mysql错误显示:

错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“1”附近使用正确的语法

如何将两个或多个项目输入数据库?

【问题讨论】:

  • 在执行之前尝试回显您的查询,以查看实际正在构建和执行的查询。还可以考虑使用 pdo 和准备好的语句而不是串联。谷歌sql注入
  • @pala 请重写上面的代码,我怎样才能将它插入到数据库中......这将是很大的帮助......
  • 如果您回显完整的查询字符串然后将其放入您的问题中,这将是一个很大的帮助

标签: php mysql arrays session multidimensional-array


【解决方案1】:

试试这样。顺便说一句 mysql 已弃用 mysqli

$insert_query = 'INSERT INTO product_added (id,ip_address,order_id,email,item_id,unit_price,quantity,total,pay_status) values ';

 foreach($_SESSION['cart_array'] as $each_item){ 

    $insert_query .= "('','','','','".$each_item['item_id']."','".$each_item['quantity']."','".$each_item['unit_price']."','',''),";        

 }

$query = rtrim($insert_query, ',');
if(!mysql_query($query)){
    die('Error: ' . mysql_error());
}else{
    echo "record added";
}

【讨论】:

  • you are guniess @Raja ...还有一个问题,如果有人实时更改购物车中的数量,我如何将唯一的数量值更新到数据库。因为它已经存储在数据库中数量为 2,如果人们将其设置为 5,当人们点击继续结帐时,我如何更新
  • 为什么要在结帐前存储到数据库。
  • 嗨@Raja ..u 非常感谢。 .但是如果用户回到上一个购物车页面并删除其中一个项目并再次点击继续结帐按钮它再次插入数据库并复制/加倍数据如何进行安全检查无论购物车项目是否存在或发生任何更改或任何项目删除只是更新购物车或使用 sessioon orderid 从购物车中删除特定项目
  • 当我的购物车有一些产品时,我将其绑定到产品 ID,并且两者都将存储在会话中,即 $_session['cart_array'] 和 $_SESSION['orderid']。实时用户更改购物车中的数量它更新存储的会话数组数量..直到现在它可以..当点击结帐按钮进入登录页面和会话数组存储在数据库中的会话 orderid.and 之后登录电子邮件 id 将是附加到 orderid ,直到现在还可以...但是当用户返回购物车页面并再次点击继续结帐按钮时出现异常
  • 再次将会话数组存储在数据库中两次我如何检查它...如果用户返回并再次更改数量并点击结帐我如何使用 id 搜索先前存储的项目并更新唯一数量按钮...谢谢@Raja
猜你喜欢
  • 2017-10-04
  • 2021-07-25
  • 2011-12-06
  • 2017-05-18
  • 1970-01-01
  • 2015-12-21
  • 2019-08-08
  • 2017-06-21
  • 2014-10-31
相关资源
最近更新 更多