从Mysql表字段中提取数据并将其放入数组中

时间:2009-01-09 19:59:49

标签: php mysql arrays

我可以找到很多教程,向您展示如何将数组加载到数据库字段中,但似乎无法弄清楚如何将字段中的每个条目作为单独的项目拉入数组。看起来很简单就是无法让它起作用,有什么帮助吗?

5 个答案:

答案 0 :(得分:1)

如果使用现代PDO库,请使用PDOStatement->fetchAll()函数,并将fetch_style参数设置为PDO::FETCH_COLUMN

基于该页面的样本:

$sth = $dbh->prepare("SELECT field FROM dbtable");
$sth->execute();
$array = $sth->fetchAll(PDO::FETCH_COLUMN);

如果使用旧的MySQL API(不推荐,示例省略错误检查)

$array = array();
$result = mysql_query("SELECT field FROM dbtable");
while ($row = mysql_fetch_row($result)) {
     $array[] = $row[0];
}
mysql_free_result($result);

答案 1 :(得分:0)

$big_2_dimensional_array_of_data;

foreach ($big_array_of_data as $row) {
  $query = "INSERT INTO table_name (field1, field2, ...) VALUES($row[0], $row[1], ...)
  mysql_query($query);
}

我想的那样

答案 2 :(得分:0)

几次读完他的问题之后,我想他想做的是这样的事情:

$query = "SELECT field1, field2, ... fieldn FROM table;";
$r = mysql_query($query,$conn);
$row = mysql_fetch_assoc($r);

我仍然不太确定他到底想要什么......

答案 3 :(得分:0)

我对这个问题的解释是提问者已经在表格中插入了许多行,并且不确定如何处理它们而不是一次一个。 (这个问题可能也可能是指序列化的数据然后插入单个字段......但我希望不会!)

所以,这是如何获得多行:

$query = "SELECT field1, field2, ... fieldn FROM table;";
$r = mysql_query($query,$conn);
$data = array();
while($row = mysql_fetch_assoc($r)) {
    $data[] = $row;
}

您现在拥有查询在$data中返回的所有行,因此类似这样的内容可以访问它:$data[2]['field1']

答案 4 :(得分:0)

以下示例假设您的SELECT语句存储在$select中,您的连接存储在$db中。结果的二维数组随后存储在$rows中。

如果您使用mysql(针对mysqli程序,只需将mysql_替换为mysqli_):

$result = mysql_query($select, $db);

$rows = [];
while ($row = mysql_fetch_assoc($result) {
    $rows[] = $row;
}

使用mysqli类:

$result = $db->query($select);

$rows = [];
while ($row = $result->fetch_assoc()) {
    $rows[] = $row;
}

$result->close()

使用PDO

$stmt = $db->query($select);
$stmt->execute();

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