Php PDO:为FETCH_ASSOCC result中的每个项设置自定义键

Php PDO:为FETCH_ASSOCC result中的每个项设置自定义键,php,pdo,Php,Pdo,我从一个表中获取一些列并将其作为json返回,我想在将其发送回客户端之前向关联数组添加一个键 我在get函数中执行此操作: $stmt = $app->pdo->prepare("SELECT col1, col2, col3 FROM item_rnw"); $stmt->execute(); $rnws = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach($rnws as $rnw) { $rnw["icon"] =

我从一个表中获取一些列并将其作为json返回,我想在将其发送回客户端之前向关联数组添加一个键

我在get函数中执行此操作:

$stmt = $app->pdo->prepare("SELECT col1, col2, col3 FROM item_rnw");
$stmt->execute();

$rnws = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($rnws as $rnw) {
    $rnw["icon"] = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=•|000000";
}

echo json_encode($rnws);
然而,在客户机上记录响应只显示col1、col2、col3键+值对,没有图标键+值

PDO新手,有人能指出我做错了什么吗


干杯

问题是您没有对数组中的项目进行操作。试试这个

foreach($rnsw as &$rnw)

问题是您没有对数组中的项进行操作。试试这个

foreach($rnsw as &$rnw)

您也可以这样做,以保存循环:

$icon = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=•|000000";
$stmt = $app->pdo->prepare("SELECT col1, col2, col3, '$icon' as icon FROM item_rnw");

您也可以这样做,以保存循环:

$icon = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=•|000000";
$stmt = $app->pdo->prepare("SELECT col1, col2, col3, '$icon' as icon FROM item_rnw");

这是一种非常干净的方法,但我仍然需要参数绑定值,即选择col1、col2、col3、?作为图标…很好的回答。干杯我要用这个,而不是循环,我不知道我能做到。但我将不得不接受菲尔的回答,因为它回答了这个问题:请注意,要记住Bindpram哈哈!干杯guys@Lee2808如果你愿意,你至少可以给Abracadver一张赞成票:D@Lee2808你应该接受最适合你的答案。我更喜欢这个你是对的,我想我在Q中暗示了如何在循环中完成它。睡觉时间lol。再次干杯。这是一个非常干净的方法,但我仍然会绑定参数值,即选择col1,col2,col3?作为图标…很好的回答。干杯我要用这个,而不是循环,我不知道我能做到。但我将不得不接受菲尔的回答,因为它回答了这个问题:请注意,要记住Bindpram哈哈!干杯guys@Lee2808如果你愿意,你至少可以给Abracadver一张赞成票:D@Lee2808你应该接受最适合你的答案。我更喜欢这个你是对的,我想我在Q中暗示了如何在循环中完成它。睡觉时间,哈哈。再次干杯。