2013-04-29 91 views
-3

我需要幫助在mysql數據庫中存儲會話變量數組。如何將會話變量數組存儲在mysql數據庫中?

問題是在mysql數據庫中只顯示array in table column

session_start(); 
$_SESSION['pid1']=array(); 
$_SESSION['pid1'][]=$_POST['pid']; 

<form name="form1" method="post"> 
<input type="hidden" name="pid[]" value="<?php echo $pid1?>" /> 
</form> 

$pid=implode(",",$_SESSION['pid1']); 
$length = count($_POST['product']); 
for($i=0; $i<$length; $i++) { 
$queryproduct=mysql_query("INSERT INTO shoppingcart VALUES ('','','".$pid."')") 
or die("Order Query Problem"); 
+0

看起來像一個壞的數據庫結構 – 2013-04-29 20:39:30

+2

您正在使用[**的**過時的數據庫API(HTTP:// stackoverflow.com/q/12859942/19068),並應使用[現代替換](http://php.net/manual/en/mysqlinfo.api.choosing.php)。你也**易受[SQL注入攻擊](http://bobby-tables.com/)**,現代的API會使[防禦]更容易(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己從。 – Quentin 2013-04-29 20:42:47

+0

正常化數據庫雖然是一個絕妙的想法,但它並不能解決實際問題 - 如果您從頂部開始追蹤數據庫,而不是僅查看整個輸出程序 - 我很猶豫是否只是修復了這部分,因爲整個方法首先沒有意義(有幾個數組,但沒有任何明顯的原因)。 – Quentin 2013-04-29 20:46:27

回答

-1

您可以使用序列化/反序列化並保存在TEXT類型的數組中。

1

當然是顯示「數組」。 看你在做什麼:

... 
$_SESSION['pid1'][]=$_POST['pid']; 
// $_SESSION['pid1'][0] // this one has the "pid" data! 

因此,改變:

$pid=implode(",",$_SESSION['pid1'][0]); 
相關問題