插入元件PDO结果阵列

问题描述:

这是我的代码:插入元件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"}] 

但我想显示在例如第一阵列saved_id:

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

你可以帮我吗?

变化

array_push($result, $res); 

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

超级它的工作谢谢你.. :) –

的情况下有预期的多个结果,最好在查询

$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); $ result ['saved_id'] =“1”;工作但fetchAll不工作:(我想fetchAll –

+0

我的代码中有一个愚蠢的错字,我修正它。总是有error_reporting(E_ALL),所以你至少可以修复这些小问题 –

+0

$ stmt-> execute ([$ saved_id,$ user_id]);是问题不显示错误报告这个HTTP错误500 –