private static function _query($sql, $params) { $dbh = self::dbh(); if (!$dbh) { debug_event('Dba', 'Error: failed to get database handle', 1); return false; } // Run the query if ($params) { $stmt = $dbh->prepare($sql); $stmt->execute($params); } else { $stmt = $dbh->query($sql); } // Save the query, to make debug easier self::$_sql = $sql; self::$stats['query']++; if (!$stmt) { self::$_error = json_encode($dbh->errorInfo()); debug_event('Dba', 'Error: ' . json_encode($dbh->errorInfo()), 1); self::disconnect(); } else { if ($stmt->errorCode() && $stmt->errorCode() != '00000') { self::$_error = json_encode($stmt->errorInfo()); debug_event('Dba', 'Error: ' . json_encode($stmt->errorInfo()), 1); self::finish($stmt); self::disconnect(); return false; } } return $stmt; }