- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
php程序報錯Fatal error Call to a member function row_array() on boolean in的原因及解決辦法
歡迎來到藍隊云技術小課堂,每天分享一個技術小知識。
php程序出現 Fatal error: Call to a member function row_array() on boolean 錯誤的原因可能是 $this->db->get($table) 返回了布爾值 false,而不是一個查詢結果對象。這通常發生在查詢失敗時,例如由于 SQL 語法錯誤或數據庫連接問題。
解決方法
檢查查詢是否成功: 在調用 row_array() 之前,檢查查詢結果是否為有效的對象。
if (!empty($like)) {
foreach ($like as $k => $v) {
$this->db->like($k, $v); // 搜索條件
}
$this->db->select('count(*) as count');
$query = $this->db->get($table);
if ($query !== false) {
$rows = $query->row_array();
$nums = isset($rows['count']) ? (int) $rows['count'] : 0;
} else {
// 查詢失敗的處理邏輯
$nums = 0;
}
return $nums;}
檢查 SQL 語法: 確保 $like 數組中的鍵和值正確無誤,并且 SQL 查詢語法正確。如果查詢失敗,可能是 SQL 語法錯誤導致的。
使用 num_rows() 檢查結果: 如果查詢成功但沒有結果,row_array() 會返回 null。可以使用 num_rows() 檢查結果集是否為空。
$query = $this->db->get($table);if ($query->num_rows() > 0) {
$rows = $query->row_array();
$nums = (int) $rows['count'];} else {
$nums = 0;}
調試查詢: 使用 $this->db->last_query() 查看生成的 SQL 查詢,以便調試。
echo $this->db->last_query();
示例代碼
以下是完整的示例代碼,展示如何正確處理查詢結果:
php復制
if (!empty($like)) {
foreach ($like as $k => $v) {
$this->db->like($k, $v); // 搜索條件
}
$this->db->select('count(*) as count');
$query = $this->db->get($table);
if ($query !== false && $query->num_rows() > 0) {
$rows = $query->row_array();
$nums = isset($rows['count']) ? (int) $rows['count'] : 0;
} else {
$nums = 0;
}
return $nums;}
通過以上方法,可以有效避免 Fatal error: Call to a member function row_array() on boolean 錯誤。如果問題仍然存在,可能需要進一步排查。
藍隊云官網上擁有完善的技術支持庫可供參考,大家可自行查閱,更多技術問題,可以直接咨詢。同時,藍隊云整理了運維必備的工具包免費分享給大家使用,需要的朋友可以直接咨詢。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP