質問編集履歴
4
解決した方法を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
<?php
|
20
20
|
|
21
|
-
$stmt = $
|
21
|
+
$stmt = $pdo->prepare( $query );
|
22
22
|
|
23
23
|
|
24
24
|
|
@@ -331,3 +331,113 @@
|
|
331
331
|
'delete_flg' => int 0
|
332
332
|
|
333
333
|
```
|
334
|
+
|
335
|
+
|
336
|
+
|
337
|
+
## 解決方法
|
338
|
+
|
339
|
+
|
340
|
+
|
341
|
+
今回は以下のように修正して解決しました。
|
342
|
+
|
343
|
+
少々難しく考え過ぎていたのだと思います。ありがとうございました。
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
```php
|
348
|
+
|
349
|
+
<?php
|
350
|
+
|
351
|
+
$stmt = $pdo->prepare( $query );
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
$stmt->execute( (array) $bind_params );
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
for ( $i = 0; $i < $stmt->columnCount(); $i ++ ) {
|
360
|
+
|
361
|
+
$column = $stmt->getColumnMeta( $i );
|
362
|
+
|
363
|
+
|
364
|
+
|
365
|
+
if ( isset( $column['native_type'] ) === true ) {
|
366
|
+
|
367
|
+
switch ( $column['native_type'] ) {
|
368
|
+
|
369
|
+
case 'TINY':
|
370
|
+
|
371
|
+
case 'SHORT':
|
372
|
+
|
373
|
+
case 'INT24':
|
374
|
+
|
375
|
+
case 'LONG':
|
376
|
+
|
377
|
+
case 'LONGLONG':
|
378
|
+
|
379
|
+
$pdo_type = PDO::PARAM_INT;
|
380
|
+
|
381
|
+
break;
|
382
|
+
|
383
|
+
default:
|
384
|
+
|
385
|
+
$pdo_type = PDO::PARAM_STR;
|
386
|
+
|
387
|
+
}
|
388
|
+
|
389
|
+
}
|
390
|
+
|
391
|
+
|
392
|
+
|
393
|
+
$row[ $column['name'] ] = $pdo_type;
|
394
|
+
|
395
|
+
}
|
396
|
+
|
397
|
+
|
398
|
+
|
399
|
+
if ( $mode === 'all' ) {
|
400
|
+
|
401
|
+
$tmp = $stmt->fetchAll();
|
402
|
+
|
403
|
+
$tmp_count = count( $tmp );
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
for ( $i =0; $i < $tmp_count; $i++ ) {
|
408
|
+
|
409
|
+
foreach ( $tmp[ $i ] as $k => $v ) {
|
410
|
+
|
411
|
+
$result[$i][ $k ] = ( $row[ $k ] === PDO::PARAM_INT ) ? (int) $v : (string) $v;
|
412
|
+
|
413
|
+
|
414
|
+
|
415
|
+
unset( $row[ $k ] );
|
416
|
+
|
417
|
+
}
|
418
|
+
|
419
|
+
|
420
|
+
|
421
|
+
unset( $tmp[ $i ] );
|
422
|
+
|
423
|
+
}
|
424
|
+
|
425
|
+
} else {
|
426
|
+
|
427
|
+
$tmp = $stmt->fetch();
|
428
|
+
|
429
|
+
|
430
|
+
|
431
|
+
foreach ( $tmp as $k => $v ) {
|
432
|
+
|
433
|
+
$result[ $k ] = ( $row[ $k ] === PDO::PARAM_INT ) ? (int) $v : (string) $v;
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
unset( $tmp[ $k ], $row[ $k ] );
|
438
|
+
|
439
|
+
}
|
440
|
+
|
441
|
+
}
|
442
|
+
|
443
|
+
```
|
3
脱字
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
アドバイスほど、よろしくお願いいたします。
|
5
|
+
アドバイスのほど、よろしくお願いいたします。
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -94,7 +94,7 @@
|
|
94
94
|
|
95
95
|
|
96
96
|
|
97
|
-
本当は for の部分は不要なのですが、とあるレンタルサーバーの PDO Driver が MySQL
|
97
|
+
本当は for の部分は不要なのですが、とあるレンタルサーバーの PDO Driver が mysqlnd ではなく MySQL を使用しており、結果が全て文字列になってしまうために [PDOでフェッチした数値型カラムの値が文字列で取得されるのでなんとかしようと頑張った。](http://d.hatena.ne.jp/erio_nk/20120621/1340267044) より拝借しました。mysqlnd をインストールできれば、悩むことはないのですが………。
|
98
98
|
|
99
99
|
|
100
100
|
|
2
mts10806 さんからの修正依頼の内容を反映
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
PHP 7.1 で上手く配列を作成できずに四苦八苦しています。
|
2
2
|
|
3
|
-
PHP の基礎的な部分で悩んでいるのだと思います。
|
4
|
-
|
5
3
|
|
6
4
|
|
7
5
|
アドバイスほど、よろしくお願いいたします。
|
1
読みづらかったため修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,10 +16,6 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
※ for の中は [PDOでフェッチした数値型カラムの値が文字列で取得されるのでなんとかしようと頑張った。](http://d.hatena.ne.jp/erio_nk/20120621/1340267044)をコピペしています
|
20
|
-
|
21
|
-
|
22
|
-
|
23
19
|
```php
|
24
20
|
|
25
21
|
<?php
|
@@ -100,7 +96,7 @@
|
|
100
96
|
|
101
97
|
|
102
98
|
|
103
|
-
本当は for の部分は不要なのですが、とあるレンタルサーバーの PDO Driver が MySQL なため、結果が全て文字列になってしまうために拝借しました。mysqlnd をインストールできれば、悩むことはないのですが………。
|
99
|
+
本当は for の部分は不要なのですが、とあるレンタルサーバーの PDO Driver が MySQL なため、結果が全て文字列になってしまうために [PDOでフェッチした数値型カラムの値が文字列で取得されるのでなんとかしようと頑張った。](http://d.hatena.ne.jp/erio_nk/20120621/1340267044) より拝借しました。mysqlnd をインストールできれば、悩むことはないのですが………。
|
104
100
|
|
105
101
|
|
106
102
|
|