【问题标题】:Adding data to php variable with PDO fetchAll::fetch_assoc使用 PDO fetchAll::fetch_assoc 将数据添加到 php 变量
【发布时间】:2012-10-02 04:10:45
【问题描述】:

好吧,这可能会让人感到困惑,因为我还没有完全弄清楚如何完美地解释这一点,但我只会展示代码来比我用文字更好地解释。

基本思想:我试图从查询中收集所有相关数据,将其分配给 PHP 变量,然后通过 json.encode 返回它,以便在需要使用 Javascript 的网站上使用。

所以这是我正在尝试做的一个例子:

$stmt = $pdo->prepare("SELECT * FROM users WHERE uid= ?");
try {
    $stmt->execute(array($uid));
} catch (PDOException $e) {
    echo $e -> getMessage();  exit;
}

if(!$stmt->rowcount()){
    return false; exit;
}

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

所以我此时显示 $data 并得到以下结果:

Array ( 
  [0] => Array (
            [uid] => 1 
            [pass] => *****
            [show_name] => Dave
            [email] => test@test.com
  ) )

这是我期望发生的:)

接下来我想将更多查询结果添加到“$data”。像这样:

    $stmt = $pdo->prepare("SELECT * FROM databank WHERE uid=?");
    try{
        $stmt->execute(array($uid));
    } catch (PDOException $e){
        echo $e -> getMessage();  exit;
    }   
$data .= $stmt->fetchAll(PDO::FETCH_ASSOC);

这是出错的地方...当我此时 echo/print_r $data 结果是:

 ArrayArray

有人可以解释为什么会这样吗?以及我如何解决它:)

感谢您的宝贵时间!

【问题讨论】:

    标签: php sql pdo


    【解决方案1】:

    您将每个结果连接到 $data,就好像结果是字符串一样,但它们是数组;当强制将数组表示为字符串时,PHP 会生成“数组”,这不是您想要的。

    在你的第一行之前,做

     $data = array();
    

    代替你的最后一行,做

     $data[] = $stmt->fetchAll(PDO::FETCH_ASSOC)
    

    你应该得到

    Array ( 
      [0] => Array (
                [uid] => 1 
                [pass] => *****
                [show_name] => Dave
                [email] => test@test.com
      ),
      [1] => Array (
                [uid] => 2
                [pass] => *****
                [show_name] => Joe
                [email] => test@test.com
      ),
      [...]
    )
    

    在 $data 中。

    希望这会有所帮助!

    【讨论】:

    • 我不知道为什么,但它没有以那种漂亮且易于阅读的格式显示,它只有一行长文本 =/?我使用 print_r($data);
    • 太棒了!现在您可以看到我的回答是否解决了您的问题,因此您可以判断是否接受答案并提高我的代表。 :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    相关资源
    最近更新 更多