示例#1
0
 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;
 }