首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP数组和fetch多行( bind_result )

PHP数组和fetch多行( bind_result )
EN

Stack Overflow用户
提问于 2014-10-19 12:43:30
回答 1查看 1.3K关注 0票数 1

我是php和mysql的新手。我正在尝试从php创建rest api,因为我的服务器没有安装mysqlnd,所以我必须使用bind_resultfetch

代码语言:javascript
运行
复制
$stmt = $this->conn->prepare("SELECT * from d WHERE d.id = ?");
$stmt->bind_param("i", 1);
if($stmt->execute()){
    $stmt->bind_result($a, $b, $c);
    $detail = array();  
    while($stmt->fetch()){      

        $detail["a"] = $a;
        $detail["b"] = $b;
        $detail["c"] = $c;
    }

    $stmt->close();
    return $response;
} else {
    return NULL;
}

上面的代码可以工作,但它一次只能返回一行信息。

例如,如果语句返回:

代码语言:javascript
运行
复制
a    b    c
1   test  test
1   test1 test1

它只返回

代码语言:javascript
运行
复制
a: 1
b: test1
c: test1

它应该在哪里:

代码语言:javascript
运行
复制
{
    a: 1
    b: test
    c: test
},
{
    a: 1
    b: test1
    c: test1
}
EN

回答 1

Stack Overflow用户

发布于 2014-10-19 12:53:17

你正在覆盖它们,你可以这样做:

代码语言:javascript
运行
复制
$detail = array();  
while($stmt->fetch())
{           
    $temp = array():
    $temp["a"] = $a;
    $temp["b"] = $b;
    $temp["c"] = $c;
    $detail[] = $temp;
}

或者直接向它们附加另一个维度:

代码语言:javascript
运行
复制
$detail = array();  
while($stmt->fetch()) {           
    $detail[] = array('a' => $a, 'b' => $b, 'c' => $c);
      //   ^ add another dimension
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26447395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档