1

次のクエリを使用して、MySQL データベースからシリアル化された配列をフェッチします。

$sql = "SELECT own_addressbooks 
            FROM users_modules
            WHERE user = ? 
            AND own_addressbooks <> ?";
//result : a:2:{i:0;s:1:"1";i:1;s:1:"2";}

次の表から:

CREATE TABLE IF NOT EXISTS `users_modules` (
  `user` int(11) NOT NULL AUTO_INCREMENT,
  `own_groups` text NOT NULL,
  `read_groups` text NOT NULL,
  `modify_groups` text NOT NULL,
  `own_mails` text NOT NULL,
  `read_mails` text NOT NULL,
  `own_calendars` text NOT NULL,
  `modify_calendars` text NOT NULL,
  `read_calendars` text NOT NULL,
  `own_addressbooks` text,
  `modify_addressbook` text NOT NULL,
  `read_addressbooks` text NOT NULL,
  PRIMARY KEY (`user`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

私が得る配列のシリアル化を解除する:

 array(2) { [0]=> string(1) "1" [1]=> string(1) "2" }

配列のすべてのフィールドは、次の表の行です。

CREATE TABLE IF NOT EXISTS `addressbooks` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) COLLATE utf8_bin NOT NULL,
  `entries` text COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=2 ;

結合クエリを使用して、各アドレス帳のタイトルを取得する方法はありますか? または、ところで、それを行うための最良の方法は何ですか?

4

0 に答える 0