如何将会话中保存的数组中的多行插入表中?

时间:2013-08-20 02:23:57

标签: php mysql

我通过php使用一个insert命令将存储在会话变量中的多个状态值传递到MySQL表中,我想知道是否可以将每个状态值插入到不同的行中。我还在一个变量中保存了一个ID,我想在每个州插入一个变量。

$ CAMPAIGN_ID 每个状态都存储在此会话变量中。

的print_r($ _ SESSION [ 'stateslist']); 假设我在$ _SESSION ['stateslist'](NY,CA)和广告系列ID 5中保存了两个状态,我希望我的数据库看起来像这样

campaign_id    state
   5             NY
   5             CA

我知道它类似于通过php数组将多行插入mysql但我在插入会话中保存的每个状态以及campaign_id时遇到问题。

1 个答案:

答案 0 :(得分:0)

有几种方法可以将一些变量从一个脚本传递到另一个脚本,但如果你真的想使用会话变量,我想你应该:

将键值数组转换为关联数组

$myvar=array('campaign_id'=>5, 'states'=>array('NY,CA'));

json_encode将其编码为符合您的会话变量的字符串。

  $_SESSION['campaign_state']=json_encode($myvar);

一旦你检索了会话变量你就json_decode它:

 $myarray=json_decode($_SESSION['campaign_state'],true);

遍历'states'键:

$query=array();
foreach($myarray['states'] as $state) {
    $query[]=insert into mytable (campaign,state) values ({$myarray['campaign_id')},$state);
}

这是一个肮脏的廉价解决方案,你仍然应该清理这些变量。