从数据库中的某个字段创建一个包含所有数据的字符串-PHP
我有一个博客CMS,在数据库中,每个博客最多有10个标签。对于每一行,这些标记仅存储为逗号分隔的值 我想选择每一行,然后获取每个字段的数据,然后将其放入一个字符串中 例如:从数据库中的某个字段创建一个包含所有数据的字符串-PHP,php,mysql,database,variables,rows,Php,Mysql,Database,Variables,Rows,我有一个博客CMS,在数据库中,每个博客最多有10个标签。对于每一行,这些标记仅存储为逗号分隔的值 我想选择每一行,然后获取每个字段的数据,然后将其放入一个字符串中 例如: $query = "SELECT * FROM blogs"; $query_params = array(); try{ $stmt = $db->prepare($query); $result = $stmt->execute($query_params); $row = $stmt-
$query = "SELECT * FROM blogs";
$query_params = array();
try{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
$row = $stmt->fetch();
$tags = $row['tags'];
}
catch(PDOException $ex)
{
die();
}
echo $tags;
这只是一个测试,但它显然只是将第一行放入$tags变量中。如何将“标记”的每个行表字段放入一个数组中
谢谢
Craig.您需要读取循环中的所有行,并将它们连接到变量上
$query = "SELECT * FROM blogs";
$query_params = array();
$tags = '';
try{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
while ($row = $stmt->fetch()) {
$tags .= $row['tags'];
}
}
catch(PDOException $ex)
{
die();
}
echo $tags;
您可以使用foreach循环和fetchAll,如下所示:
$rows = $stmt->fetchAll();
foreach ($rows as $row) {
$tags[] = $row['tags'];
}
$oneHugeString = implode(",", $tags);
(或任何您想要的字符串格式)。使用$stmt->fetchAll()。如果您只需要标记数据,请使用“从博客中选择标记”,而不是对整个表行进行散列。谢谢,请查看concatenate:)
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC));
$result = "";
foreach($rows as $row) {
$result .= $row['tags'] . ", ";
}