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

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

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

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

PHP

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

1回答

1427閲覧

PHPのPDOクラスについて

beginerbeginer

総合スコア10

MySQL

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

PHP

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2017/02/27 16:03

PHP初心者です。
windows10で、xamppを使っています。mysql関数を使うと大丈夫なのですが、PDOクラスを変わりに使うとmysqlデータベースからデータを取り出せません。原因を教えていただけませんでしょうか。どちらもエラーは全く出ません。投稿コードの一つ目はmysql関数を利用したもので、2つ目はPDOクラスを利用したものです。

php

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset = "utf-8"> 5<title>Next</title> 6</head> 7<body> 8<?php 9 10 $conn = mysql_connect("localhost", "myus", "12345"); 11 mysql_query("SET NAMES 'utf-8'", $conn); 12 mysql_select_db("basic", $conn); 13 14 $sql = 'SELECT * FROM main_customer'; 15 $rs = mysql_query($sql, $conn); 16 17 echo '<table border = "1">'; 18 while($row = mysql_fetch_assoc($rs)){ 19 echo "<tr>"; 20 foreach ($row as $key => $val){ 21 echo "<TD>$key = <b>$val</b></TD>"; 22 } 23 echo "</tr>"; 24 } 25 echo '</table>'; 26 mysql_close($conn); 27?> 28</body> 29</html> 30コード

次にPDOクラスのコードです。

php

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset = "utf-8"> 5<title>Next</title> 6</head> 7<body> 8<?php 9 10 $dsn = 'mysql:host = localhost;dbname = basic'; 11 12 $db = new PDO($dsn, 'myusr', '12345'); 13 $db->query("SET NAMES 'utf-8'"); 14 15 16 $sql = 'SELECT * FROM main_customer'; 17 $stmt = $db->prepare($sql); 18 $stmt->execute(); 19 20 echo '<table border = "1">'; 21 while($row = $stmt->fetch()){ 22 echo "<tr>"; 23 foreach ($row as $key => $val){ 24 echo "<TD>$key = <b>$val</b></TD>"; 25 } 26 echo "</tr>"; 27 } 28 echo '</table>'; 29?> 30</body> 31</html> 32コード

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

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

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

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

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

guest

回答1

0

ベストアンサー

php

1<?php 2try { 3 4 $dsn = 'mysql:host=localhost;dbname=basic;charset=utf8'; 5 $options = [ 6 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION 7 ]; 8 $db = new PDO($dsn, 'myusr', '12345', $options); 9 //$db->query("SET NAMES 'utf-8'"); <- ダメ 10 11 $sql = 'SELECT * FROM main_customer'; 12 $stmt = $db->prepare($sql); 13 $stmt->execute(); 14 $rows = $stmt->fetchAll(); 15} catch (Exception $ex) { 16 $err = $ex->getMessage(); 17} 18?> 19<!DOCTYPE html> 20<html> 21 <head> 22 <meta charset="utf-8"> 23 <title>Next</title> 24 </head> 25 <body> 26 <?php if (isset($err)) : ?> 27 <p><?= $err; ?></p> 28 <?php endif; ?> 29 <table border="1"> 30 <?php foreach ($rows as $row) : ?> 31 <tr> 32 <?php foreach ($row as $key => $val) : ?> 33 <td><?= $key; ?><b><?= $val; ?></b></td> 34 <?php endforeach; ?> 35 </tr> 36 <?php endforeach; ?> 37 </table> 38 </body> 39</html>

投稿2017/02/27 16:10

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

beginerbeginer

2017/02/28 00:48

ありがとうございます。解決しました。朝起きてコードの綺麗さに感動しました。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問