題名の通りなのですが、
例えば以下のようなDBがあったとします。
SQL
1CREATE TABLE `quizzes` ( 2 `question_id` int(11) NOT NULL, 3 `question` varchar(100) NOT NULL, 4 `answer1` varchar(50) NOT NULL, 5 `answer2` varchar(50) NOT NULL, 6 `answer3` varchar(50) NOT NULL, 7 `answer4` varchar(50) NOT NULL, 8 `correct_answer` varchar(50) NOT NULL 9) ENGINE=InnoDB DEFAULT CHARSET=utf8; 10 11-- 12-- Dumping data for table `quizzes` 13-- 14 15INSERT INTO `quizzes` (`question_id`, `question`, `answer1`, `answer2`, `answer3`, `answer4`, `correct_answer`) VALUES 16(1, 'I\'ve ____ studying English for 7 years.', 'have', 'had', 'been', 'done', 'been'), 17(2, 'This is the book I wrote ___ my sister used to have.', 'that', 'who', 'whom', 'in which', 'that'), 18(3, 'I\'d ___ honored if you named me as the best man', 'rather', 'be', 'woud', 'been', 'be'), 19(4, 'She is so much more ___ than me.', 'funnier', 'cooler', 'fun', 'good', 'fun'), 20(5, 'Don\'t be ___ in the classroom.', 'running', 'play game', 'happier', 'can', 'running'), 21(6, 'I don\'t want you to feel ___ to come with me.', 'forced', 'be ', 'be sad', 'been forced', 'forced'); 22 23-- 24-- Indexes for dumped tables 25-- 26 27-- 28-- Indexes for table `quizzes` 29-- 30ALTER TABLE `quizzes` 31 ADD PRIMARY KEY (`question_id`); 32 33-- 34-- AUTO_INCREMENT for dumped tables 35-- 36 37-- 38-- AUTO_INCREMENT for table `quizzes` 39-- 40ALTER TABLE `quizzes` 41 MODIFY `question_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; 42
これをphpだと以下のようなメソッドを作り、
PHP
1 public function getQuizzes() 2 { 3 try { 4 $sql = "SELECT * FROM quizzes ORDER BY RAND() LIMIT 4"; 5 $stmt = $this->db->prepare($sql); 6 $stmt->execute(); 7 $results = $stmt ->fetchAll(PDO::FETCH_ASSOC); 8 return $results; 9 } catch (PDOException $e) { 10 return false; 11 } 12 }
呼び出し先で
$result = getQuizzes();とすると$result.question_id,$result. questionという様にしたいのです。
これを実現するためにいつもJavaではクラスに格納していました。しかし上記のような使い方をしたいのです。そのためにDBの検索結果をそのまま返すようなメソッドを作りたいのです。そのまま返せなくても最悪でもPHPでいう以下のような使い方をしたいです。
PHP
1$array= array('question_id'=>1,'question'=>'xxxx', 'answer1'=>'xxxx');
これを実現するにはどうすれば良いでしょうか
回答1件
あなたの回答
tips
プレビュー