Php 如何在数据库中注册会话中保存的数据?

Php 如何在数据库中注册会话中保存的数据?,php,mysql,arrays,session,sql-insert,Php,Mysql,Arrays,Session,Sql Insert,我是一个对Php感兴趣的新生。 我还试图做一个项目,我们可以在线订购,以提高我的才能。有一点我有一个问题,我将分享以下代码。我可以使用会话将项目添加到购物车,并将其存储在会话目录中。之后,我需要在按下“签出”按钮后将添加到此购物卡的所有产品保存到数据库中。但我不知道如何将会话中保存的大量数据记录到数据库中。在下面的代码片段中,我可以用print\r显示会话中保存的所有数据(即所有添加的产品)。但是如何在数据库中注册它们呢。 如果你帮助我,我会很高兴的。祝你一天愉快 <?php ses

我是一个对Php感兴趣的新生。 我还试图做一个项目,我们可以在线订购,以提高我的才能。有一点我有一个问题,我将分享以下代码。我可以使用会话将项目添加到购物车,并将其存储在会话目录中。之后,我需要在按下“签出”按钮后将添加到此购物卡的所有产品保存到数据库中。但我不知道如何将会话中保存的大量数据记录到数据库中。在下面的代码片段中,我可以用print\r显示会话中保存的所有数据(即所有添加的产品)。但是如何在数据库中注册它们呢。 如果你帮助我,我会很高兴的。祝你一天愉快

<?php session_start(); require_once 'dbconnect.php'; ?> <?php require('header.php'); ?> <?php require('menu.php'); ?> <h1 style="text-align: center; color: blue;">Sepetim</h1> <div> <table style="width: 100%"> <tr> <th class="cart">Ürün İsmi</th> <th class="cart">Miktar</th> <th class="cart">Fiyat Detayları</th> <th class="cart">Sipariş Toplamı</th> <th class="cart">Sil</th> </tr> <?php $total = 0; //If have something in the cart. Display it. if(!empty($_SESSION["cart"])) { foreach($_SESSION["cart"] as $keys => $values) { ?> <tr class="cart"> <td style="background-color: #d3dcf2"><?php echo $values["item_name"]; ?></td> <td class="cart"><?php echo $values["item_quantity"] ?></td> <td class="cart"><?php echo $values["product_price"]; ?> ₺</td> <td class="cart"><?php echo number_format($values["item_quantity"] * $values["product_price"], 2); ?> ₺</td> <td class="cart"><a id="delete" href="shop.php?action=delete&id=<?php echo $values["product_id"]; ?>"><span> X</span></a></td> </tr> <?php $total = $total + ($values["item_quantity"] * $values["product_price"]); } } ?> </table> </div> <center> <div> <?php echo "<br>"; //products with basket added. echo "<b>Added products </b><br>"; print_r(array_values($_SESSION["cart"])); echo "<br><br> <b>Array keys</b><br>"; $column=implode("," , array_keys($_SESSION["cart"][0])); echo "$column"; echo "<br>"; echo "<br><br> <b>Array values</b><br>"; $values=implode(",",array_values($_SESSION["cart"][0])); echo "$values"; echo "<br><br>"; echo "<b>Count in Array</b><br>"; $count=count($_SESSION["cart"]); echo $count; echo "<br><br>"; //Insert Database if(!empty($_SESSION["cart"])) { foreach($_SESSION["cart"] as $keys => $values){ $product_id=$values["product_id"]; $item_name=$values["item_name"]; $quantity=$values["item_quantity"]; $product_price=$values["product_price"]; $pro_sum=$values["item_quantity"] * $values["product_price"]; $sql = "INSERT INTO order (product_id,item_name,quantity,product_price,pro_sum,total) VALUES ($product_id,'$item_name',$quantity,$product_price,$pro_sum,$total)"; if( $DBcon -> query($sql) === TRUE){ echo "New record created succesfully."; }else{ echo "Error : " . $sql . "<br>" . $DBcon->error; } } } echo "<br><br>"; echo "<br><br>"; ?> <p><u>Ürün toplamı: </u><?php echo number_format($total,2); ?> ₺</p> <p><u>Vergiler ve Ücretler : </u><?php echo number_format($total*0.18); ?> ₺</p> <h3>Toplam: <?php echo number_format($total*1.18); ?> ₺</h3> <h4><a id="checkout" href="checkout.php"> Siparişi Tamamla</a></h4> </div> </center> <?php require('footer.php'); ?>
塞皮蒂姆 Ürünİsmi 米克塔尔 菲亚特·德泰拉尔 西帕里·托普兰 Sil ₺ ₺
谢谢你的帮助。我这样解决了我的问题=>>$sql=“INSERT INTO
order
order\u id
product\u id
item\u name
quantity
pro\u-sum
total
)值(空,“$product\u-id.”,“$item\u-name.”,“$quantity.”,“$pro.$total.“)”。祝你过得愉快。

不幸的是,当我尝试你的时候,我犯了这样一个错误。=>>“分析错误:语法错误,意外的“$Product_id.”(T_常量_ENCAPSED_字符串)C:\xamp\htdocs\Smart Cafe\Smart Cafe codes\yourchart.php,在第83行=>>>第83行:$sql:$INSERT=“插入订单(产品id、项目名称、数量、产品价格、专业金额、总额)值(“..$Product_id.”、“..$Product_name.”、“..$QUOTE.””“.$product_price.”、“.$PROU sum.”、“.$total.””;先是单引号,然后是双引号$productid=mysql\u real\u escape\u string($values['product\u id']);。并像这样将每个变量括起来(混合双引号和单引号)。我希望我能帮助你很多“$productid.”@Kuldeep No.使用占位符值。不要那样做。特别是不要使用已删除的
mysql\u查询
函数系列。警告:尽可能使用准备好的语句,以避免在查询和创建中插入任意数据。在任何用户提供的数据都指定有
:name
指示符的情况下,这些操作都非常简单,以后将使用
绑定参数或
执行
来填充指示符,具体取决于您使用的是哪一个指示符。请尝试摆脱用不必要的东西将代码弄乱的习惯,例如
==true
。许多函数被设计为返回逻辑上为真或假的值,因此这是多余的。