我在我的模型上有这个函数,它接收一个参数,所以我可以在视图页面上预加载一些信息,但不知怎的回来是空的:
function addTicket($idt)
{
//Db Connection
$DB2 = $this-> load-> database('DB2', TRUE);
if (!empty($idt)){
$query = $DB2->query ("
Select TROUBLE_ID, ASSIGNED_DATE, CREATOR, PROBLEM_DESCRIPTION, RESOLUTION, RESOLVED_DATE
FROM TABLE1
WHERE TROUBLE_ID = ".$idt."
");
if($query){
return $query->result_array();
}
else
{
echo 'No Queries to display';
}
}
else {echo 'No results to display';}
}
我有一个包含大量条目的Oracle数据库,但查询仍然是空的,以防万一我做echo 'id:'.$idt.;
来检查是否正在传递ID。是的,是的。
我也收到这条消息:
致命错误:在非对象上调用成员函数result_array()
在我的视图页面上,我有以下代码:
foreach($results as $row){ }
我现在收到此消息: 遇到了PHP错误 严重性:警告 消息:为foreach()提供的参数无效 知道为什么这不起作用吗?
答案 0 :(得分:2)
这是CodeIgniter吗?如果是这样,检查结果的更好方法是if($query->num_rows() > 0) { }
,而不仅仅是if($query) { }
此外,如果其CodeIgniter确保您在config / database.php中将db_debug
设置为TRUE
,否则您将无法查看数据库错误。
答案 1 :(得分:0)
由于某种原因,查询失败
$this->db->_error_message();
应该告诉你为什么
$this->output->enable_profiler(TRUE);
应该为您提供有关查询的更多信息
更新
$DB2 = $this-> load-> database('DB2', TRUE);
if (!empty($idt)){
$query = $DB2->query ("
将^^更改为vv
$DB2 = $this-> load-> database('DB2', TRUE);
if (!empty($idt)){
$query = $this->DB2->query ("
答案 2 :(得分:0)
最后,当我在查询条件中使用双引号之前的单引号时,我能够解决此问题,如下所示:
Select TROUBLE_ID, ASSIGNED_DATE, CREATOR, PROBLEM_DESCRIPTION, RESOLUTION, RESOLVED_DATE
FROM TABLE1
WHERE TROUBLE_ID = '" . $idt . "'