我正在从数据库中的所有行创建一个大字符串。
这工作得很好,但是我有问题时,使用字符串作为数组作为每个数据库行的结尾不以逗号结束,所以我得到最后和第一个单词之间的连接。
如何修改:
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();