質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1002閲覧

fetch_assocについて

KazKit

総合スコア8

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/10/27 00:52

前提・実現したいこと

ここに質問の内容を詳しく書いてください。

現在、phpとmysqlを使ってラジオボタン式のクイズを作成しています。
https://www.youtube.com/watch?v=ZLC8BLCrxCU&t=635s
上の動画の通りほぼ進めていて、databaseの接続のみ、PDOを使って最初にデータベース名などを定義しtry catchでエラーなどの処理を行なっています。

<質問>
question.phpで、
$question = $result->fetch_assoc();をセットしたところで、したのようなエラーが表示されていました。

これを解決する方法はありますでしょうか?

詳しくは下記のコードをご覧ください。

発生している問題・エラーメッセージ

Uncaught Error: Call to undefined method PDOStatement::fetch_assoc()

該当のソースコード

question.php <?php require_once 'database.php'; ?> <?php //set question number $number = (int) $_GET['n']; //get question $query = "SELECT * FROM question WHERE question_id = $number"; //get result $result = $db->query($query) or die($db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION). __LINE__); $question = $result->fetch_assoc(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charaset="utf-8"> <title>Quiz</title> <link rel="stylesheet" href="styles.css"> </head> <body> <header> <div class="container"> <h1>Welcome to the Vocab quiz</h1> </div> </header> <main> <div class="container"> <div class="current">Question 1 of 5</div> <p class="question"><?php echo $question['question']; ?></p> <form action="process.php" method="POST"> <ul> <li><input type="radio" name="choice" value="1">1</li> <li><input type="radio" name="choice" value="1">2</li> <li><input type="radio" name="choice" value="1">3</li> <li><input type="radio" name="choice" value="1">4</li> <li><input type="submit" value="submit" class="submit"></li> </ul> </form> </div> </main> <div class="container"> <footer>Copyright 2019</footer> </div> </body> </html> .database.php <?php ini_set('display_errors', 1); define('DB_DATABASE', 'quiz101'); define('DB_USERNAME', 'root'); define('DB_PASSWORD', 'xxxxxxx'); define('PDO_DSN', 'mysql:dbhost=xxx.xx.xx.xxx;dbname=' . DB_DATABASE); try { // connect $db = new PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo $e->getMessage(); exit; }

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/10/27 04:45

phpMyAdminは無関係では?
guest

回答2

0

ベストアンサー

PDOStatementクラスに fetch_assoc というメンバーはありません。

PDOクラス を見ると、 public query ( string $statement ) : PDOStatement が PDOStatement を返すことがわかりますね。
PDOStatementクラス を見ると、どんなメソッドを持っているか確認できます

投稿2019/10/27 01:09

thyda.eiqau

総合スコア2982

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Call to undefined method PDOStatement::fetch_assoc()

そのままです。
PDOStatement クラス

解決するには適切なメソッドを選択してください。

PDO を使用するときのテンプレートをまとめてますので参考まで。
PHP で MySQL 接続時に必要な知識(最小限版)

投稿2019/10/27 01:08

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問