こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPからMySQLのデータが表示できない

〇質問の主旨

PHPでMySQLのデータベース(テーブル)から
データを表示させようと考えていて、
一度目は表示させることはできました。

しかし同じURLでブラウザをリロードしたところ、
二度目は表示されません。

もう一度データを表示させるためには、
どのあたりをチェックすればよいでしょうか?

ご存知の方がいらっしゃいましたら、
ご教示願います。

〇質問の補足


PHPによるコードとMySQLによるクエリ文は次のとおりです。
現在、PHPの「処理1」にある"Success!"は表示させることができますが、
「処理2」は表示させることはできません。

・コード

<?php

// データベースの接続
try {
$dbh = new PDO('mysql:host=localhost;dbname=mydatabase', 'myname','mypassword');
} catch(PDOException $e) {
var_dump($e->getMessage());
exit;
}

// 処理 1
echo "Success!";

// 処理 2
$sql = "select * from users";
$stmt = $dbh->query($sql);
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $user) {
var_dump($user['name']);
}
echo $dbh->query("select count(*) from users")->fetchColumn() . "records found";

// 切断
$dbh = null;

・クエリ文

create table users (
id int(11) not null auto_increment primary key,
name varchar(50),
email varchar(255) unique,
password char(16)
);

insert into users (name,email,password) values ('hoge','hoge@dummy.com','abc');
insert into users (name,email,password) values ('foo','foo@dummy.com','def');

以上、よろしくお願い申し上げます。

投稿日時 - 2014-11-20 01:06:03

QNo.8830943

困ってます

質問者が選んだベストアンサー

提示されているクエリ文を毎回(このスクリプトで)投げているわけではありませんよね(別スクリプトかphpMyAdminで「1回だけ」実行しただけですよね)。

>しかし同じURLでブラウザをリロードしたところ、
>二度目は表示されません。

ちょっと「あり得ない」現象ですね。三度目以降はどうなりますか?



また、$dbhの生成直後に

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

としておいて、処理2全体をtryで括って最後に

} catch(PDOException $e) { die($e->getMessage(); }

で例外を捕捉したら何か表示されますか?(PDOのデフォルトのエラーモードはPDO::ERRMODE_SILENTなのでエラーが発生しても何も表示されません)。

投稿日時 - 2014-11-20 14:12:17

補足

agunuzさま。
たびたびのコメントで恐れ入ります。

思っていたよりも、
php.iniの復旧に手間取っておりますので、
一旦、回答の受付を打ち切らせていただきます。

設定ファイルの復旧を完了させてから、
考え直してみたいと思います。

以上、よろしくお願い申し上げます。

投稿日時 - 2014-11-20 19:09:28

お礼

agunuzさま。
コメントありがとうございます!

>PDOのデフォルトのエラーモードはPDO::ERRMODE_SILENT

エラーが何も出ないことについて気が付きました。

不思議に思い、php.iniファイルを操作していると
誤ってファイルの内容を消してしまいました。

(正確にいうとswapファイルと入れ替わってしまって
中味がなくなってしまいました)

そのためまずphp.iniの内容を復旧させることを
いたします。

復旧後にいただいたアドバイスの
エラーモード等を確認したいと思います。
まずはお礼申し上げます。

投稿日時 - 2014-11-20 16:54:58

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問