将多条记录插入数据库php

时间:2014-01-09 15:57:53

标签: php mysql

我目前正在使用php购物车。 我想将记录从一个页面插入到另一个页面。 比如我点击我的产品页面的购买按钮后, 我买的产品将列在我的购物车中(我已经完成了)。 当我选择“结账”时,它会在我的购物车中插入整个产品列表。 但是,我不能这样做。 当我选择“签出”时,它只设法插入一个产品/记录,而不是整个产品/记录列表。 我可以知道如何将整个记录列表插入数据库吗?

下面是我的插入代码,我没有使用SESSION来存储;而且,我知道SQL注入,但我首先尝试做基本的,所以不会涉及SQL注入。 有人可以帮我吗? 我们将非常感谢您的帮助!(:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "checkout_form")) {

  $insertSQL = sprintf("INSERT INTO transaction (username, items, packaging, qty, price, imagename, `date`) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['username'], "text"),
                       GetSQLValueString($_POST['items'], "text"),
                       GetSQLValueString($_POST['package'], "text"),
                       GetSQLValueString($_POST['qty'], "int"),
                       GetSQLValueString($_POST['price'], "double"),
                       GetSQLValueString($_POST['imagename'], "text"),
                       GetSQLValueString($_POST['date'], "date"));

        mysql_select_db($database_MyDatabase, $MyDatabase);
  $Result1 = mysql_query($insertSQL, $MyDatabase) or die(mysql_error());
  $insertGoTo = "transaction.php";

  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }

  header(sprintf("Location: %s", $insertGoTo));
}

1 个答案:

答案 0 :(得分:0)

因此,您希望在结帐过程结束时将购物车中的所有产品存储到数据库中,但不要将会话用作临时持久性存储。您必须将购物车存放在某个地方(Cookie /会话),以便在结帐过程结束时将整个购物车存放起来,这样您就可以执行以下操作:

(注意这是伪代码,远离好的oop风格,只是为了让你明白这一点)

// Use-Case: Customer adds a product into his cart
$cart = $_SESSION['cart'];
$cart['positions'][] = array('item' => $_POST['item'], /* all your position information here */

// Use-Case: Customer wants to end the checkout process
foreach ($card['positions'] as $position) {
    // Your datbase insert for a position here
}