gpt4 book ai didi

php - 如何处理来自 MySQL 的结果对象

转载 作者:行者123 更新时间:2023-11-29 12:32:00 25 4
gpt4 key购买 nike

我正在尝试使用 PHP 和 MySQL 来进行一些关系数据库处理。为了合并两个不同表的输出,我在 stackoverflow 上找到了一些帮助。 。其中一个建议是将输出合并到一个结果对象中(据我所知),因此代码如下所示:

// Function to read all projects from database
public function get_projects() {
$query = "SELECT pt.*, at.* FROM ed_projects as pt, ed_project_address as at WHERE pt.project_id = at.project_id";
$db_result = $this->db->query($query);
$result_object = $db_result->result();
return $result_object;
}

其中 ed_project 是主表的名称,ed_project_address 是子表(或任何名称),其中包含每个项目的街道名称、邮政编码、城市等。地址属性通过project_id链接到项目。

我可以让它在“从数据库读取”部分工作,但是当我尝试使用它时,我收到错误:“ fatal error :无法在 (. ..)”。当我使用 CodeIgniter 时,它会通过两个额外的步骤:

项目 View Controller :

/* index() - Project view controller
* Handles the showing of the project main page, that is the list of all
* projects found in the database. See also views/projects/index.php.
*/
public function index() {
$data['projects'] = $this->project_model->get_projects();
$data['title'] = 'Ejendomme';
$this->load->view('templates/header', $data);
$this->load->view('projects/index', $data);
$this->load->view('templates/footer');
}

项目 View :

<?php foreach ($projects as $projects_item): ?>

<h2><?php echo $projects_item['pt.projects']->project_name ?></h2>
<div class="main"><?php echo $projects_item['at.address_street'] ?></div>

<?php endforeach ?>

错误出现在项目 View (index.php) 的第 3 行中。我已经阅读了大量有关 PHP 中对象的内容,但是添加 CodeIgniter 框架似乎使事情变得模糊,足以让我无法理解: -(。我是不是离这里太远了?或者我只是错过了最后一点?

最佳答案

你刚刚犯了一个错误在您的模型中,您返回对象

return $result_object;

但你在 View 中将它用作数组。你应该像这样使用它

  $projects_item->project_name

如果您想在 View 中将其用作数组,您应该像这样从模型返回数据

$result_object = $db_result->result_array();

如果您的两个表具有相同的列名,您的查询也会产生错误。在这种情况下,您必须指定要选择哪个表的哪一列。

关于php - 如何处理来自 MySQL 的结果对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27347476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com