Codeigniter - 如果数据库查询没有返回结果,则执行操作
Posted
技术标签:
【中文标题】Codeigniter - 如果数据库查询没有返回结果,则执行操作【英文标题】:Codeigniter - Perform action if database query returns no results 【发布时间】:2011-12-25 10:14:31 【问题描述】:如果我的查询没有返回结果,我如何返回“未找到数据”的值???
这是我的代码:
function getTerms($letter)
$this->db->select('term, definition');
$this->db->from('glossary');
$this->db->where(array('letter' => $letter));
$query = $this->db->get();
foreach ($query->result() as $row)
$data[] = array(
'term' => $row->term,
'definition' => $row->definition
);
return $data;
即使查询没有返回给我 php 错误的结果,它当前也会返回 $data 变量。如何在返回 $data 数组之前检查是否有结果。
【问题讨论】:
【参考方案1】:<?php
return is_array($data) ? $data : array();
【讨论】:
【参考方案2】:如何为$data
提供初始空数组值
放个
$data = array();
foreach
之前
【讨论】:
【参考方案3】:即使查询没有返回给我 php 错误的结果,它当前也会返回 $data 变量。
初始化你打算构建的数组是一个好习惯:
$data = array();
// Loop through possible results, adding to $data
如果没有结果,您将返回一个空数组,然后在您的控制器中检查。
这样,至少定义了变量,你不会得到通知。
【讨论】:
【参考方案4】:只需检查查询是否返回至少一行:
if ($query->num_rows() > 0)
// query returned results
else
// query returned no results
阅读更多in the docs
【讨论】:
以上是关于Codeigniter - 如果数据库查询没有返回结果,则执行操作的主要内容,如果未能解决你的问题,请参考以下文章
$this->db->query() 啥都不返回 CodeIgniter
013.CI4框架CodeIgniter数据库操作之:查询数据库,并让数据以数组的方式返回查询结果