【问题标题】:Pulling Data from a Mysql Table Field and putting it into an array从 Mysql 表字段中提取数据并将其放入数组中
【发布时间】:2010-09-30 13:52:51
【问题描述】:

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

【问题讨论】:

  • 您能否准确说明您想要什么,因为答案中显然存在一些混淆。我的解释是,您希望从 many 行中提取的 one 字段中的所有值都显示为数组。

标签: php mysql arrays


【解决方案1】:
$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】:

如果使用现代 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);

【讨论】:

    【解决方案3】:

    看了几遍他的问题,我猜他想做的是这样的:

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

    我还是不太确定他到底想要什么……

    【讨论】:

      【解决方案4】:

      我对这个问题的解释是,提问者在表格中插入了许多行,并且不知道如何处理将它们一次取出一个以外的方法。 (这个问题也可能是指数据序列化然后卡在一个字段中......但我希望不是!)

      那么,这里是获取多行的方法:

      $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']

      【讨论】:

        【解决方案5】:

        以下示例假设您的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);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-02-23
          • 2023-03-29
          • 2012-10-02
          • 1970-01-01
          • 2021-06-22
          • 1970-01-01
          • 2015-08-12
          • 2016-03-12
          相关资源
          最近更新 更多