繁体   English   中英

MySQLi结果数组

[英]MySQLi result to array

目前,我的代码输出1个数组,但不能全部显示。 我知道我需要一会儿或foreach循环才能显示其余内容。

这是我当前的代码:

/**
 * Get work orders via email and password and institution id
 */
public function getWorkOrdersByInstitution($email, $password, $institution_id) {

    $work_order_stmt = $this->conn->prepare("SELECT * FROM project WHERE institution_id = ?");

    $work_order_stmt->bind_param("s", $institution_id);

    if ($work_order_stmt->execute()) {
        $workorder = $work_order_stmt->get_result()->fetch_assoc();
        $work_order_stmt->close();

       return $workorder;

    } else {
        return NULL;
    }
}

我希望它返回数组。 当前,这是返回的内容(注意:显示数组时我正在使用json_encode):

{
    "project_id": 1,
    "date": "Undefined",
    "project_code": "ea60f6190c",
    "title": "test",
    "description": "test",
    "demo_url": null,
    "project_category_id": null,
    "client_id": null,
    "company_id": null,
    "staffs": "4,5,",
    "budget": 0,
    "timer_status": 0,
    "timer_starting_timestamp": null,
    "total_time_spent": 0,
    "progress_status": null,
    "timestamp_start": "1516874400",
    "timestamp_end": "1516878000",
    "project_status": 1,
    "project_note": null,
    "institution_id": 12,
    "project_state": 2,
    "strata_manager": 6,
    "site_contact": 7,
    "place_of_service": 18
}

所以最终,我希望所有行都存储在1个数组中,我可以在另一个页面上返回并使用它。

是的,您可以使用循环获取所有结果:

if ($work_order_stmt->execute()) {
    $result = $work_order_stmt->get_result() ;

    $workorders = [] ;
    while ($workorder = $result->fetch_assoc()) {
        $workorders[] = $workorder ;
    }
    $work_order_stmt->close();

   return $workorders;
}
else { .. }

或者,您可以使用fetch_all()获取所有数据:

$workorders = $result->fetch_all();  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM