回答編集履歴

3

a

2016/06/05 08:37

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -124,9 +124,21 @@
124
124
 
125
125
 
126
126
 
127
- // 画像データのみを1次元配列として取得
127
+ // 画像データを1次元配列として取得
128
128
 
129
+ // 取り扱いやすいが,画像サイズ総量が大きい場合にメモリがつらい
130
+
129
- $images = $pdo->query('SELECT img FROM images')->fetchAll(PDO::FETCH_COLUMN, 0);
131
+ // $images = $pdo->query('SELECT img FROM images')->fetchAll(PDO::FETCH_COLUMN, 0);
132
+
133
+
134
+
135
+ // 画像データを取り出せるイテレータとして取得
136
+
137
+ // やや取り扱いにくいが,画像サイズ総量が大きくても余裕
138
+
139
+ $images = $pdo->query('SELECT img FROM images');
140
+
141
+ $images->setFetchMode(PDO::FETCH_COLUMN, 0);
130
142
 
131
143
 
132
144
 

2

a

2016/06/05 08:37

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -38,9 +38,9 @@
38
38
 
39
39
 
40
40
 
41
- 1. http://example.com/index.php
41
+ 1. http://example.com/index.php
42
42
 
43
- 2. http://example.com/images/logo.png
43
+ 2. http://example.com/images/logo.png
44
44
 
45
45
 
46
46
 

1

実装例

2016/06/05 08:30

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -93,3 +93,87 @@
93
93
  <img src="data:image/jpeg;base64,<?=base64_encode(画像データ)?>">
94
94
 
95
95
  ```
96
+
97
+
98
+
99
+ ----
100
+
101
+
102
+
103
+ 【実装例】
104
+
105
+
106
+
107
+ ```html
108
+
109
+ <?php
110
+
111
+
112
+
113
+ try {
114
+
115
+
116
+
117
+ // 接続
118
+
119
+ $pdo = new PDO('mysql:dbname=share_note;charset=utf8;host=localhost', 'root', '', [
120
+
121
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // SQL実行に失敗した場合にもPDOExceptionを投げる
122
+
123
+ ]);
124
+
125
+
126
+
127
+ // 画像データのみを1次元配列として取得
128
+
129
+ $images = $pdo->query('SELECT img FROM images')->fetchAll(PDO::FETCH_COLUMN, 0);
130
+
131
+
132
+
133
+ } catch (PDOException $e) {
134
+
135
+
136
+
137
+ // 500 Internal Server Errorでテキストとしてエラーメッセージを表示
138
+
139
+ header('Content-Type: text/plain; charset=UTF-8', true, 500);
140
+
141
+ exit($e->getMessage());
142
+
143
+
144
+
145
+ }
146
+
147
+
148
+
149
+ // HTMLとして表示 (文字コードもここで指定するために上書きする)
150
+
151
+ header('Content-Type: text/html; charset=UTF-8');
152
+
153
+
154
+
155
+ ?>
156
+
157
+ <!DOCTYPE html>
158
+
159
+ <title>JPEG画像一覧</title>
160
+
161
+ <style>
162
+
163
+ img { float: left; }
164
+
165
+ </style>
166
+
167
+ <h1>JPEG画像一覧</h1>
168
+
169
+ <?php foreach ($images as $i => $img): ?>
170
+
171
+ <img src="data:image/jpeg;base64,<?=base64_enode($img)?>" alt="画像<?=$i+1?>">
172
+
173
+ <?php endforeach; ?>
174
+
175
+ ```
176
+
177
+
178
+
179
+