0

我已经设置了一个购物篮,它是一个会话列表,存储在一个名为['list']. 我想提取会话数据(有关列表项的信息)并将它们插入数据库表中。

session_start();
Print_r ($_SESSION['list']);

if ( !isset($_SESSION['username']) && ($_SESSION['list']) )
{
   header("Location:index.php");
   exit();
}

结果:

数组 ( [1] => 数组 ( [ISBN] => 0923184232 [书名] => asodiaso [作者] => lolstan [价格] => 5.99 ) [2] => 数组 ( [ISBN] => 6677889900 [书名] => 圣殿骑士守则 [作者] => CM Palov [价格] => 18.99 ) )

^ 我想把这个信息插入到一个表中!:)

通过使用它,我可以打印出包含在数组中的会话变量,但我需要做的是提取变量,然后将它们插入到另一个数据库表中。我不知道如何去提取它们,所以有什么建议吗?

我熟悉如何将信息插入数据库表(MYSQL)。

插入方法如下所示:

$query = "INSERT INTO orderhistory VALUES ('','".$ISBN."','".$bookname."','".$author."','".$price."', '')";

目前我的 addtobasket.php 看起来像:

`

require "dbconn.php";

//Connects to database
$connect = mysql_connect($host, $user, $password )
or die ("Hey loser, check your server connection.");

//Make sure we are using the right database
mysql_select_db($database);

$ISBN = $_SESSION['list']['ISBN'];
$bookname = $_SESSION['list']['bookname'];
$author = $_SESSION['list']['author'];
$price = $_SESSION['list']['price'];

// Set up the query using the values that were passed via the URL from the form
$query = "INSERT INTO orderhistory 
VALUES('','".$ISBN."','".$bookname."','".$author."','".$price."', '')"; 

是的,我知道这是错的!:((

4

3 回答 3

0
$query = "INSERT INTO orderhistory
VALUES('','".$ISBN."','".$bookname."','".$author."','".$price."', '')";

需要是:

$query = "INSERT INTO orderhistory
VALUES('', '$ISBN', '$bookname', '$author', '$price')"

你有太多和不必要的引号

''只要您在数据库中将其设置为 NULL(您不需要),您就不需要该字段中的 final 。如果您希望在date每次插入时都使用空白字段,我建议您NULL在数据库中使用

于 2012-04-17T02:15:29.297 回答
0

如果您只想将变量的内容转储到数据库字段中,您可以使用serialize()json_encode()将您的数组转换为可以轻松转换回来的字符串。

顺便说一句,我强烈建议切换到 PDO 和准备好的语句以避免基本的 sql 注入问题。

于 2012-04-17T01:38:21.703 回答
0

也许这种代码会帮助你:

$con = mysql_connect('myserver', 'myusername', 'mypassword') or die('Error: ' . mysql_error());
mysql_select_db("mydatabase", $con);
mysql_query("SET NAMES 'utf8'", $con);

$insert_query = "UPDATE mytable SET field='" . $_SESSION["value"] . "' WHERE id='" . $_SESSION["id"] . "'";

$result = mysql_query($insert_query) or die(mysql_error());
mysql_close($con);
于 2012-04-17T01:40:08.967 回答