回答編集履歴

3

調整

2017/11/14 07:25

投稿

yambejp
yambejp

スコア114777

test CHANGED
@@ -17,6 +17,8 @@
17
17
  ```PHP
18
18
 
19
19
  $dsn = 'mysql:host=localhost; dbname=mydb;charset=utf8;';
20
+
21
+ $pdo=new PDO($dsn,$user,$password);
20
22
 
21
23
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
22
24
 

2

修正

2017/11/14 07:25

投稿

yambejp
yambejp

スコア114777

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

1

追記

2017/11/14 07:23

投稿

yambejp
yambejp

スコア114777

test CHANGED
@@ -17,3 +17,25 @@
17
17
 
18
18
 
19
19
  ```
20
+
21
+
22
+
23
+ # 追記
24
+
25
+ 上記処理を行った上でエラーがでないようなら
26
+
27
+ データ抽出については、以下のように取り出して下さい
28
+
29
+ ```
30
+
31
+ $sql="SELECT id,name,comment FROM banana";
32
+
33
+ $stmt = $pdo->query($sql);
34
+
35
+ while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
36
+
37
+ echo $row['id'].','.$row['name'].','.$row['comment'].'<br>';
38
+
39
+ };
40
+
41
+ ```