Database 未加载codeigniter/数据库页面
我有一个数据库请求的问题:网页根本没有加载Database 未加载codeigniter/数据库页面,database,codeigniter,loading,pyrocms,Database,Codeigniter,Loading,Pyrocms,我有一个数据库请求的问题:网页根本没有加载 public function get_mylist($user_id){ $this->db->select('*'); $this->db->from($this->_table); $this->db->where('my', '1'); $this->db->where('user1', $user_id);
public function get_mylist($user_id){
$this->db->select('*');
$this->db->from($this->_table);
$this->db->where('my', '1');
$this->db->where('user1', $user_id);
$this->db->or_where('user2', $user_id);
$query = $this->db->get()->result_array();
if($query!=NULL)
{
foreach($query as $row)
{
echo $row['user1'];
if($row['user2'] != $user_id)
{
$data[] = $row['user2'];
}
else if($row['user1'] != $user_id)
{
$data[] = $row['user1'];
}
}
return $data;
}
else return 0;
}
你知道吗
编辑:在我的日志中有一个致命错误:允许的内存大小字节已用尽
<>我的循环一定是错误的:/< /p> 你需要考虑你的DB表中有多少行,每行有多少字节。 表中是否有足够的数据达到PHP配置的内存限制 另外,检查SQL构造中的逻辑 具体而言:
$this->db->where('my', '1');
$this->db->where('user1', $user_id);
$this->db->or_where('user2', $user_id);
本,其中
条款被解释为:
WHERE (`my` = 1 AND `user1` = $user_id) OR (`user2` = $user_id)
这是您想要的,还是您需要:
WHERE `my` = 1 AND (`user1` = $user_id OR `user2` = $user_id)
在MySQL中,或
优先于和
最后,作为测试,取出解析$data
数组的代码,返回$row
数组,并使用print\r($row)
将其打印出来,并确保您的查询正在提取您期望的数据
希望这些想法能帮助您诊断问题。祝你好运
注意:要在SQL中实现替代逻辑,可以执行以下操作:
$this->db->where('my', '1');
$this->db->where("(`user1` = $user_id OR `user2` = $user_id)");
请注意紧靠仪表板内侧的开启/关闭括号
双引号。我的日志中有一个错误:致命错误:允许的内存大小字节已用尽。我的循环中一定有错误,如果有人能看到的话,谢谢你的快速回复。我的sql表有3列2行,所以我不认为问题来自内存。所以我只有一行返回用户1和用户2,所以我不明白是怎么回事。我如何实现my=1和(user1=$user\u id或user2=$user\u id)的位置?我应该把where('my','1')放在其他条件之后吗?经过几次测试,我发现问题来自“return”。我可以使用var_dump(data),它显示一个数组,但我不能返回“oO”。在您的代码段中,
$data
是一个数组,而不是一个对象。但是,如果您喜欢,可以定义一个对象。内存错误消息可能是由于尝试将数组用作对象(?)非常感谢。我确实尝试使用一个对象,而它是一个数组。