尝试在我的数据库中插入添加到我的购物车中的数据

时间:2016-02-16 07:01:46

标签: php html

case "add":
  if (!empty($_POST["quantity"])) {
    $productByCode = $db_handle - > runQuery("SELECT * FROM tblproduct WHERE code='".$_GET["code"]."'");
    $itemArray = array($productByCode[0]["code"] => array('name' => $productByCode[0]["name"], 'code' => $productByCode[0]["code"], 'quantity' => $_POST["quantity"], 'price' => $productByCode[0]["price"]));
    if (!empty($_SESSION["cart_item"])) {
      if (in_array($productByCode[0]["code"], $_SESSION["cart_item"])) {
        foreach($_SESSION["cart_item"] as $k => $v) {
          $name = mysql_real_escape_string($v['name']);
          $code = mysql_real_escape_string($v['code']);
          $qunatity = mysql_real_escape_string($v['quantity']);
          $price = mysql_real_escape_string($v['price']);
          $con = mysqli_connect("retail", "RS", "....", "rs");
          $query = "insert into addtocart(name,code,quantity,price)  values('$name','$code','$quantity','$price')";
          mysql_query($sql) or exit(mysql_error());
          if ($productByCode[0]["code"] == $k)
            $_SESSION["cart_item"][$k]["quantity"] = $_POST["quantity"];
        }
      } else {
        $_SESSION["cart_item"] = array_merge($_SESSION["cart_item"], $itemArray);
      }
    } else {
      $_SESSION["cart_item"] = $itemArray;
    }
  }
  break;

2 个答案:

答案 0 :(得分:0)

你无法直接将数组插入mysql,因为mysql并不了解php数据类型。 Mysql只能理解SQL。因此,要将数组插入mysql数据库,必须将其转换为sql语句。这可以手动完成,也可以通过库完成。输出应该是INSERT语句。

这是一个标准的mysql插入语句。

INSERT INTO TABLE1(COLUMN1, COLUMN2, ....) VALUES (VALUE1, VALUE2..)

如果您有一个名为addtocart的表格,其中的列会显示在您的阵列的键中,您可以使用此小片段插入。以下是将数组转换为此语句的方式。

$columns = implode(", ",array_keys($insData));
$escaped_values = array_map('mysql_real_escape_string', array_values($insData));
$values  = implode(", ", $escaped_values);
$sql = "INSERT INTO `addtocart`($columns) VALUES ($values)";

我希望它对你有用。请让我知道任何错误发生..

答案 1 :(得分:0)

如果要将数组保存到mysql,则必须序列化()数组,然后插入到mysql

当你从mysql返回它时,使用unserialize()数组再返回它就可以了吗

http://php.net/manual/en/function.serialize.php