【问题标题】:Php and PDO - fetching dataPhp 和 PDO - 获取数据
【发布时间】:2018-05-19 22:06:33
【问题描述】:

谁能告诉我为什么以下方法不起作用:

$result = $this->db->prepare("SELECT high,low FROM data where symbol=:symbol and date1 <= :date1 order by date1 desc LIMIT :limit1");
    $result->bindParam(':symbol', $total_pairs, PDO::PARAM_STR);
    $result->bindParam(':date1', $date1, PDO::PARAM_STR);
    $result->bindParam(':limit1', $period, PDO::PARAM_INT);
    $result->execute();

    $data = $result->fetchAll(PDO::FETCH_ASSOC);


   var_export($data["high"]);

这给了我错误:

 Undefined index: high

我正在尝试获取两列并获取数组中的结果。

【问题讨论】:

  • 你为什么不尝试使用var_export( $data ) 看看你得到了什么?
  • 正如错误所说,没有称为高的索引。 $data 应该是一个数组,其中包含与查询中获取的行一样多的关联数组。
  • 它应该是$data[0]["high"]。只需增加第一个索引。
  • @OrlandoLeite 这无济于事,因为您可以看到我已经在这样做了。我确实得到了一个关联数组,但仍然无法引用。

标签: php mysql pdo


【解决方案1】:

$data 数组包含多个关联数组(每个返回的记录一个)。如果您只想要一个数组中每条记录的高值,而只想要另一个结果集中的低值,您可以这样做:

<?php

$high = array_column($data, 'high');
$low = array_column($data, 'low');

?>

【讨论】:

  • 非常感谢...我以前从不知道 array_column 函数!!!像魅力一样工作。
【解决方案2】:
<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Exercise PDOStatement::fetch styles */
print("PDO::FETCH_ASSOC: ");
print("Return next row as an array indexed by column name\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");

print("PDO::FETCH_BOTH: ");
print("Return next row as an array indexed by both column name and number\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");

print("PDO::FETCH_LAZY: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");

print("PDO::FETCH_OBJ: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->name;
print("\n");
?>

它可以帮助您更好地理解。此代码取自php.net站点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 2011-07-05
    • 2015-11-18
    相关资源
    最近更新 更多