如何将会话数据插入数据库?

时间:2012-04-17 01:25:36

标签: php arrays session

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

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

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

结果:

数组([1] =>数组([ISBN] => 0923184232 [bookname] => asodiaso [作者] => lolstan [价格] => 5.99)[2] =>数组( [ISBN] => 6677889900 [bookname] =>圣殿骑士代码[作者] => CM Palov [价格] => 18.99))

^我希望将此信息插入表格中! :)

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

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

insert方法如下所示:

$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."', '')"; 

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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);

答案 2 :(得分:0)

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

需要:

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

你有太多的,不必要的引用

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