2017-03-01 7 views
0

は、これは私のコードです:挿入要素PDO結果配列

$stmt = $db->prepare("SELECT * FROM wishlists WHERE user_id='1'"); 
 
$stmt->execute(); 
 
$result = $stmt->fetchAll(PDO::FETCH_ASSOC); 
 
$res = array('saved_id' => "1"); 
 
array_push($result, $res); 
 
echo json_encode($result);

最終結果:

[{"id":"1","user_id":"1","name":"San Francisco","privacy":"0","pick":"Yes"},{"saved_id":"1"}] 

が、私は、例えば、第1のアレイにsaved_idを示したい:

[{"id":"1","user_id":"1","name":"San Francisco","privacy":"0","pick":"Yes","saved_id":"1"}] 

私を助けることができますか?

答えて

1

変更

array_push($result, $res); 

$result = array_map(function($r) use($res){ 
    return array_merge($r, $res); 
}, $result); 
+0

スーパーを使用しています。 –

3

場合期待複数の結果があり、それは、クエリ

$saved_id = 1; 
$user_id = 1; 
$stmt = $db->prepare("SELECT *, ? as saved_id FROM wishlists WHERE user_id=?"); 
$stmt->execute([$saved_id, $user_id]); 
$result = $stmt->fetchAll(PDO::FETCH_ASSOC); 
echo json_encode($result); 

に権利を注入する方が良いでしょうが、あなたは一列のみが必要な場合は、あなたの代わりにはfetchAllの())(フェッチ使用する必要があります。
あなたはあなたが望むものは何でも要素を追加することができます

$stmt = $db->prepare("SELECT * FROM wishlists WHERE user_id='1'"); 
$stmt->execute(); 
$result = $stmt->fetch(PDO::FETCH_ASSOC); 
$result['saved_id'] = "1"; 
echo json_encode($result); 
+0

$ = $ stmt->フェッチ(PDO :: FETCH_ASSOC)を引き起こします。 $結果['saved_id'] = "1";私はfetchAllを望んでいますfetchAllが必要です –

+0

私のコードには奇妙なタイプミスがありましたが、修正しましたerror_reporting(E_ALL)を持っているので、少なくともこのような些細な問題を修正することができます –

+0

$ stmt-> execute ([$ saved_id、$ user_id]);このHTTPエラー500を報告するエラーを表示しない問題です。 –