-2

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

$campaign_id 每个状态都存储在这个会话变量中。

print_r($_SESSION['stateslist']); 假设我在 $_SESSION['stateslist'] (NY, CA) 和活动 ID 5 中保存了两个州,我希望我的数据库看起来像这样

活动 ID 状态
   5纽约
   5 加利福尼亚州

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

4

1 回答 1

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);

遍历“状态”键:

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

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

于 2013-08-20T02:34:24.693 回答