2013-08-01 60 views
0

這是正確的嗎?我可以在PHP變量上使用序列化嗎?

$date_range = serialize($test_pack_type_id); 

如果是,那麼這有什麼用?

if($key == 1) 
       $date_range = array('from_date'=>$form_data['registered_users_from_date'], 'to_date'=>$form_data['registered_users_to_date']); 
      else if($key == 2) 
       $date_range = array('from_date'=>$form_data['logged_in_users_from_date'], 'to_date'=>$form_data['logged_in_users_to_date']); 
      else if($key == 3) 
       $date_range = array('from_date'=>$form_data['not_logged_in_users_from_date'], 'to_date'=>$form_data['not_logged_in_users_to_date']); 
      else if($key == 3) 
       $date_range = $test_pack_type_id; 

其實一切都是我分配給$date_range變量數組。但最後一個變量,即$test_pack_id是一個簡單的變量。我想將這些文件插入到數據庫中。

+1

這裏有一個問題沒有通過查看手冊來回答嗎? http://php.net/serialize如果有,你能詳細說明一下嗎? –

+0

爲了您的參考,我將我的額外代碼添加到問題中。 – PHPLover

回答

2

您似乎正在將包含元素from_dateto_date的數組打包到一個數據庫列中。

雖然serialize()是一個可以做到這一點的好方法,但從數據庫體系結構的角度來看它並不是很好。您確定在查詢中永遠不需要from_date和to_date嗎?因爲對於數據庫內的任何種類的理智用途,每個值都應該有兩個單獨的列。這也有助於任何類型的過濾/分類。

0

serialize()可用於任何類型(資源除外)。 序列化的目的通常是能夠保存它(持久性)。

1

serialize用於將任何複雜的數據結構轉換爲字符串,因此它可以存儲在文件,數據庫,cookie等中或通過網絡傳輸。

+0

還值得一提的是,一些對象,例如PDO類實例顯式禁止序列化。有關更多信息,可以查看__wakeup(),__sleep()魔術方法和Serializable接口。 – Mikk

相關問題