3

私のmysqlセルでは、これはシリアル化機能を使用して保存されます

a:1:{i:0;s:275:"a:4:{s:8:"khghg_id";s:10:"foo1187";s:3:"uri";s:21:"foo/vtory/1187";s:4:"name";s:5:"nmart";s:5:"tuhlmb";a:3:{i:0;s:40:"knuujhs/201205/13_03_pceb9.jpg";i:1;s:40:"knuujhs/201205/13_03_0wlih.jpg";i:2;s:40:"knuujhs/201205/13_03_tq5wf.jpg";}}";}

シリアル化を解除しようとしています

私はこのコードを使用しています

$cell =$row9['attachment'];
$list = unserialize($cell);
$info = unserialize($list[0]);
var_dump($info);

これを試してみると、エラーbool(false)エラーが発生するため、parse_strをparse_strで試してみましたが、エラーは発生しませんでした。

 parse_str($cell,$list );

しかし、データベースに出力がありません。データベースに出力を保存し、データベースにクエリを送信しています。このシリアル化されていない値以外はすべて保存されています。

foo1187であるkhghg_idfoo/ vtory /1187であるurinmartである名前
これらの詳細をデータベースに保存したいので、使用しています

'.$info['khghg_id'].'   for sending the data to mysql but mysql stores everything  other than  all unsterilized  values
4

1 に答える 1

2

シリアル化されたテキストをデータベースから取得します。

シリアル化を解除します。変更してから、データベースに保存し直すときに、シリアル化する必要があります。

//retrieve serialized data from database
$arr = unserialize($row['properties']);

//get the desired value
$khghg_id = $arr['khghg_id'];

//now insert $khghg_id in database

上に投稿したコードから..2回シリアル化を解除しているようです..実際にこれを行う必要はありません

$cell =$row9['attachment'];
$list = unserialize($cell);
$info = $list[0]; //this line should make the difference
var_dump($info);
于 2012-05-13T08:26:58.343 に答える