【问题标题】:MySQLI returns nothing when some variables are inserted in array当某些变量插入数组时,MySQLI 不返回任何内容
【发布时间】:2017-09-22 08:23:18
【问题描述】:

您好,我正在尝试使用以下代码从我的数据库中获取数据:

public function getAllConstitutionPages($id){
    $result =  $this->conn->prepare("SELECT para.id, para.pageFk, 
                                            para.title, para.subtitle, para.paragraph 
                                    FROM `constitutionpage_tb` page 
                                        JOIN constitutionpageparagraph_tb para ON para.pageFk = page.id 
                                    WHERE page.constitutionFk IN (?)");
    $result->bind_param("s", $id);
    $result->execute();
    $response["pages"] = array();
    $result->bind_result($id, $pageFk, $title, $subTitle, $paragraph);
    while($row = $result->fetch()) 
    {
        $page = array();
        $page["id"] = $id;
        $page["pageFk"] = $pageFk; 
        $page["title"] = $title;
        $page["subTitle"] = $subTitle;  
        $page["paragraph"] = $paragraph; 
         echo.$paragraph;//prints out the paragraph in the browser
        $response["pages"][] =  $page;

    }

    return $response;
} 

查询选择了 5 个列,我使用 bind_result 成功绑定了 while 循环,由于某些未知原因,当我添加 $page["paragraph"] = $paragraph; 时,查询没有返回任何内容,甚至没有返回空的 pages 数组,那一刻我删除它我得到了所有数据,查询没有任何问题,因为我已经在 phpmyadmin 中对其进行了测试,它返回了包括段落在内的所有 5 列,上次我遇到这样的问题是因为我在 bind_result 中有 2 个变量与page 数组同名,所以它正在消耗自己,但在这种情况下我没有,有人帮我检测我的错误

更新

在与代码搏斗后,我尝试从循环中回显paragraph,我意识到它的回显成功,我无法理解的是为什么不能将它存储在数组中,为什么当我什么都不添加时绝对没有返回任何内容,甚至没有错误消息

【问题讨论】:

  • 您正在定义数组 $page = array();循环内。您应该在之前创建它并添加正在循环的项目。
  • @GiacomoPittalis 添加您的评论作为答案
  • @GiacomoPittalis 是的,一个大数组中的小数组很容易转换为单个对象,因此理想情况下 $page 是一个对象
  • @GiacomoPittalis 看看simplifiedcoding.net/retrofit-android-tutorial 上的 getMessages() 方法,人们总是这样做

标签: php mysqli


【解决方案1】:

我通过查看我在数据库中的数据解决了这个问题,显然段落中有一个 - 没有被转义。

【讨论】:

    猜你喜欢
    • 2012-09-07
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多