我通过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时遇到问题。
答案 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);
}
这是一个肮脏的廉价解决方案,你仍然应该清理这些变量。