使用连接创建字符串时,在DB行之间添加逗号


Add comma between DB rows when creating a string using concatenation

我正在从数据库中的所有行创建一个大字符串。

这工作得很好,但是我有问题时,使用字符串作为数组作为每个数据库行的结尾不以逗号结束,所以我得到最后和第一个单词之间的连接。

如何修改:

  while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    // concatenate all the tags into one string
    $tags .= $row['tags'];
  }

所以每个$row['tags']后面都有一个逗号?

我会选择:

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
   // concatenate all the tags into one string
   $tags[] = $row['tags'];
}
$tagsString = implode(",", $tags);

您可以在每次迭代中将标签和逗号连接起来

$tags .= $row['tags'] . ',';

要去掉最后一个逗号,只需要substr()

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    // concatenate all the tags into one string
    $tags .= $row['tags'].',';
}
$tags = substr($tags,0,-1);

你可以这样做:

$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
$atags = array_column($row, 'tags');
$tags = implode(',',$atags);

这是PDO, Luke

$sql = "SELECT tags FROM table WHERE something = ?";
$stm = $pdo->prepare($sql);
$stm->execute([$condition]);
$tags = implode(",",$stm->fetchAll(PDO::FETCH_COLUMN, 0));

这是Mysql, Luke

$sql = "SELECT group_concat(tags) FROM table WHERE something = ?";
$stm = $pdo->prepare($sql);
$stm->execute([$condition]);
$tags = $stm->fetcnColumn();