【问题标题】:convert multiple rows to json after PDO request with php and pdo method only仅使用 php 和 pdo 方法在 PDO 请求后将多行转换为 json
【发布时间】:2018-01-30 19:23:26
【问题描述】:

我想在 PDO 请求后转换几行,但我无法在我的页面上显示结果。

这是用于 rubimotion 应用程序

这是我的php代码:

<?php
    //to see what return request in my php page
    header('Content-type: text/html; charset=utf-8');

    try {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=IP;dbname=NAME','USER','PASS');

        $reponse = $bdd->prepare("SELECT * FROM table WHERE id = 1");
        $reponse->execute(); #this request return severals rows

        $nb = $reponse->rowCount();
        if($nb > 0){
            $json = json_encode( $reponse->fetchAll( PDO::FETCH_ASSOC ) );
            echo $json;
        }
    }
    catch (Exception $e) {
        echo "Connexion échouée : " . $e->getMessage();
    }

?>

但我有一个白页,在控制台中响应为空。

怎么了?

我尝试了很多选项,但是我有很多错误,例如

  • 数组到字符串的转换
  • SyntaxError:JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符

谢谢!对不起,我是法国人的错误

【问题讨论】:

  • 检查数据集中是否有单引号 (') 或任何其他字符...
  • 通过 echo $nb 检查行数;首先是结果数据是否可用。或者添加 if($nb > 0) 条件的 else 部分
  • 我没有单引号只是很多字段字符串@BharatDangar : echo $nb -> 218 rows !
  • 您是否在 PHP 中启用了错误报告?您在 Web 服务器错误日志中看到任何错误吗?
  • 您是否意识到您已经定义了$pdo_options,但它并没有在您的连接中使用?

标签: php mysql json pdo


【解决方案1】:

您必须删除标题功能并使用以下行。您应该在 json_encode 函数上方添加以下行。

header("content-type:application/json");

【讨论】:

  • 现在我的页面中有 $json = json_encode( $reponse-&gt;fetchAll( PDO::FETCH_ASSOC ) ); var_dump($json); 有 bool(false)
  • header("content-type:application/json"); $reponse = $bdd-&gt;prepare("SELECT * FROM manager_vtours WHERE user_id = 1"); echo json_encode($reponse-&gt;fetchAll(PDO::FETCH_ASSOC)); 结果 = []
  • 我没有错误...只是在我的控制台中有一个空响应和一个白页
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 2012-02-26
  • 2020-05-25
相关资源
最近更新 更多