PHPでMySQLを実行した結果をforeachで配列に入れると、特定の箇所がNULLになります。
原因究明のために確認した点は以下です。
o MySQLに直接同じSQL文を実行した場合は結果が得られます
o '判定'のSQL型は、int(1) ですが、TEXTに型を変更しても改善されませんでした。
o $stmtdata には値は格納されています。
PHP
1 $stmt = $db->prepare("SELECT 番号, ポイント, 緯度, 経度, エリア FROM basedata WHERE 店コード = ? AND 番号 = ?"); 2 $stmt->bindValue(1, $stmtdata['店コード'], PDO::PARAM_INT); 3 $stmt->bindValue(2, $stmtdata['番号']); 4 $stmt->execute(); 5 foreach ($stmt->fetchAll() as $sresult) { 6 $area_lists[] = array( 7 '番号' => $sresult['番号'], 8 'ポイント' => $sresult['ポイント'], 9 '緯度' => $sresult['緯度'], 10 '経度' => $sresult['経度'], 11 'エリア' => $sresult['結果'] 12 ); 13 }
var_dump($area_lists); の結果は以下。
output
1 [0]=> 2 array(5) { 3 ["番号"]=> 4 string(6) "999ア" 5 ["ポイント"]=> 6 string(1) "0" 7 ["緯度"]=> 8 float(34.0) 9 ["経度"]=> 10 float(131.8) 11 ["エリア"]=> 12 NULL ★ここが変★ 13 } 14 [1]=> 15 array(5) { 16 ["番号"]=> 17 string(6) "999ア" 18 ["ポイント"]=> 19 string(1) "1" 20 ["緯度"]=> 21 float(34.9) 22 ["経度"]=> 23 float(131.9) 24 ["エリア"]=> 25 NULL ★ここが変★ 26 }
上記の["エリア"]=>NULL には、int型の1が入るはずですが、原因がわかりません。
回答1件
あなたの回答
tips
プレビュー