teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

調整

2017/11/14 07:25

投稿

yambejp
yambejp

スコア117914

answer CHANGED
@@ -8,6 +8,7 @@
8
8
 
9
9
  ```PHP
10
10
  $dsn = 'mysql:host=localhost; dbname=mydb;charset=utf8;';
11
+ $pdo=new PDO($dsn,$user,$password);
11
12
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
12
13
  $pdo->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND,'SET NAMES utf8');
13
14
  $stmt = $pdo->query("SET NAMES utf8"); /*お勧めしませんが最後の手段*/

2

修正

2017/11/14 07:25

投稿

yambejp
yambejp

スコア117914

answer CHANGED
@@ -3,9 +3,14 @@
3
3
  > $pdo=new PDO($dsn,$user,$password);
4
4
 
5
5
  の直後に、以下を追加しないと例外を処理してくれません
6
+ また、全角文字が表示されないのはキャラクターコードの問題です
7
+ $dsn内でcharsetを宣言するところから始め、setAttributeやqueryの発行で対処します
6
8
 
7
9
  ```PHP
10
+ $dsn = 'mysql:host=localhost; dbname=mydb;charset=utf8;';
8
11
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
12
+ $pdo->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND,'SET NAMES utf8');
13
+ $stmt = $pdo->query("SET NAMES utf8"); /*お勧めしませんが最後の手段*/
9
14
 
10
15
  ```
11
16
 

1

追記

2017/11/14 07:23

投稿

yambejp
yambejp

スコア117914

answer CHANGED
@@ -7,4 +7,15 @@
7
7
  ```PHP
8
8
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
9
9
 
10
+ ```
11
+
12
+ # 追記
13
+ 上記処理を行った上でエラーがでないようなら
14
+ データ抽出については、以下のように取り出して下さい
15
+ ```
16
+ $sql="SELECT id,name,comment FROM banana";
17
+ $stmt = $pdo->query($sql);
18
+ while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
19
+ echo $row['id'].','.$row['name'].','.$row['comment'].'<br>';
20
+ };
10
21
  ```