-2

セッション変数に格納されている複数の状態値を、1 つの挿入コマンドを使用して PHP 経由で MySQL テーブルに渡しています。各状態値を別の行に挿入できるかどうか疑問に思っています。また、各状態に挿入したい ID を変数に保存しています。

$campaign_id 各状態は、このセッション変数に格納されます。

print_r($_SESSION['stateslist']); $_SESSION['stateslist'] (ニューヨーク、カリフォルニア) とキャンペーン ID 5 に 2 つの州が保存されていると仮定すると、データベースは次のようになります。

キャンペーン ID の状態
   5 ニューヨーク
   5 CA

PHP配列を介してmysqlに複数の行を挿入するのと似ていることは知っていますが、セッションに保存された各状態とcampaign_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 に答える