【问题标题】:Php pdo result arrayphp pdo 结果数组
【发布时间】:2015-02-27 19:03:26
【问题描述】:

我有一个数据库选择应该得到一个数字并显示它,但只显示array

$sth = $conn->prepare("SELECT score FROM people WHERE email='gasd3z@yaho.com'");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC);

echo $result;

我该怎么做才能显示那个数字?

【问题讨论】:

  • print_r($result); 也许?只是也许......(我也打赌(5 美元)你没有打开错误报告:<?php ini_set("display_errors", 1); error_reporting(E_ALL); ?>
  • 与 print_r 一起工作,但我不想显示一个数组 "Array ( [0] => Array ( [score] => 3 ) ) " 我想要一个数字。
  • echo $result['score']
  • 另外,由于您没有在 sql 查询中绑定任何参数,因此您可以将其全部写入一行 $sth = $conn->query("SELECT score FROM people WHERE email='gasd3z@yaho.com'")->fetchAll(PDO::FETCH_ASSOC);
  • @Gabriel 也许你想了解一些基本的数组内容:php.net/manual/en/language.types.array.php

标签: php arrays pdo


【解决方案1】:

你不需要准备任何东西,所以你不需要使用准备好的语句,只需使用这样的查询:

$result = $conn->query("SELECT score FROM people WHERE email='gasd3z@yaho.com'");
foreach($result as $row)
    echo $row['score'];

【讨论】:

  • @Gabriel 1. 请在您的问题中标记确保您向我们展示了您的 完整真实 代码 2. 在您的顶部添加错误报告文件:<?php ini_set("display_errors", 1); error_reporting(E_ALL); ?> 3. 连接后立即为 PDO 添加错误模式:$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
【解决方案2】:

前面的答案是错误的,但不多。 当您执行fetchAll() 时,您将从数据库中获取与查询匹配的所有行。

答案是

$sth = $conn->prepare("SELECT score FROM people WHERE email=:email");
$sth->execute([':email' => 'gasd3z@yaho.com']);
$result = $sth->fetch(PDO::FETCH_ASSOC);
$sth->closeCursor();
echo $result['score'];

并且不要忘记prepare() 用于准备语句,因此您最好像在我的示例中那样在查询中使用用户数据。如果您不想处理查询中的任何值,请改用query()exec()

【讨论】:

    【解决方案3】:

    您可以使用print_r($result)var_dump($result) 打印出数组。回显只打印出类型。

    另外,如果您只需要打印出特定的行,请像 echo $result['score']; 那样做

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 2012-10-09
      • 2021-01-04
      相关资源
      最近更新 更多