0

MySQL データベースの特定の行セルから詳細を抽出する方法を知りたいです。これらの詳細は、MySQL テーブルのセルにあります。具体的には、次の値を抽出したい

cwall_id which is photos1187       
uri    which is photos/viewstory/1187
name     which is nmart
thumb which is uploads/userfiles/201205/13_03_pceb9.jpg

私はこれを持っています:

a:1:{i:0;s:275:"a:4:{s:8:"cwall_id";s:10:"photos1187";s:3:"uri";s:21:"photos/viewstory/1187";s:4:"name";s:5:"nmart";s:5:"thumb";a:3:{i:0;s:40:"uploads/userfiles/201205/13_03_pceb9.jpg";i:1;s:40:"uploads/userfiles/201205/13_03_0wlih.jpg";i:2;s:40:"uploads/userfiles/201205/13_03_tq5wf.jpg";}}";}
4

1 に答える 1

2

あなたが正しく理解している場合、このセル情報はシリアライゼーションを使用して保存されていますhttp://php.net/manual/en/function.serialize.php

必要な情報を抽出する前に、 unserialize http://www.php.net/manual/en/function.unserialize.phpする必要があります。

$cell = 'a:1:{i:0;s:275:"a:4:{s:8:"cwall_id";s:10:"photos1187";s:3:"uri";s:21:"photos/viewstory/1187";s:4:"name";s:5:"nmart";s:5:"thumb";a:3:{i:0;s:40:"uploads/userfiles/201205/13_03_pceb9.jpg";i:1;s:40:"uploads/userfiles/201205/13_03_0wlih.jpg";i:2;s:40:"uploads/userfiles/201205/13_03_tq5wf.jpg";}}";}';
$list = unserialize($cell);
$info = unserialize($list[0]);
var_dump($info);

出力

array
  'cwall_id' => string 'photos1187' (length=10)
  'uri' => string 'photos/viewstory/1187' (length=21)
  'name' => string 'nmart' (length=5)
  'thumb' => 
    array
      0 => string 'uploads/userfiles/201205/13_03_pceb9.jpg' (length=40)
      1 => string 'uploads/userfiles/201205/13_03_0wlih.jpg' (length=40)
      2 => string 'uploads/userfiles/201205/13_03_tq5wf.jpg' (length=40)

欲しい情報

echo $info['cwall_id'] ;
echo $info['uri'] ;
echo $info['thumb'][1] ;
于 2012-05-12T18:58:37.367 に答える