示例#1
0
 public static function query($query, $QT = NULL)
 {
     if (!self::$link) {
         self::connect();
     }
     // filter the query, if filters are available
     // NOTE: some queries are made before the plugins have been loaded, and thus cannot be filtered with this method
     $query = str_replace(iPHP_DB_PREFIX_TAG, iPHP_DB_PREFIX, $query);
     $query = str_replace('`', '', $query);
     // initialise return
     $return_val = 0;
     self::flush();
     // Log how the function was called
     self::$func_call = __CLASS__ . "::query(\"{$query}\")";
     // Keep track of the last query for debug..
     self::$last_query = $query;
     // Perform the query via std pgsql_query function..
     if (SAVEQUERIES) {
         self::timer_start();
     }
     self::$result = pg_query(self::$link, $query);
     self::$num_queries++;
     if (SAVEQUERIES) {
         self::$queries[] = array($query, self::timer_stop());
     }
     // If there is an error then take note of it..
     if (self::$last_error = pg_result_error(self::$result)) {
         self::print_error();
         return false;
     }
     $QH = strtoupper(substr($query, 0, strpos($query, ' ')));
     if (in_array($QH, array('INSERT', 'DELETE', 'UPDATE', 'REPLACE', 'SET', 'CREATE', 'DROP', 'ALTER'))) {
         $rows_affected = pg_affected_rows(self::$result);
         // Take note of the insert_id
         if (in_array($QH, array("INSERT", "REPLACE"))) {
             self::$insert_id = pg_last_oid(self::$result);
         }
         // Return number of rows affected
         $return_val = $rows_affected;
     } else {
         if ($QT == "field") {
             $i = 0;
             while ($i < pg_num_fields(self::$result)) {
                 self::$col_info[$i] = pg_field_name(self::$result);
                 $i++;
             }
         } else {
             $num_rows = 0;
             while ($row = pg_fetch_object(self::$result)) {
                 self::$last_result[$num_rows] = $row;
                 $num_rows++;
             }
             // Log number of rows the query returned
             self::$num_rows = $num_rows;
             // Return number of rows selected
             $return_val = $num_rows;
         }
         pg_free_result(self::$result);
     }
     return $return_val;
 }
示例#2
0
 public static function query($query, $QT = NULL)
 {
     if (!self::$link) {
         self::connect();
     }
     // filter the query, if filters are available
     // NOTE: some queries are made before the plugins have been loaded, and thus cannot be filtered with this method
     $query = str_replace(iPHP_DB_PREFIX_TAG, iPHP_DB_PREFIX, $query);
     // initialise return
     $return_val = 0;
     self::flush();
     // Log how the function was called
     self::$func_call = __CLASS__ . "::query(\"{$query}\")";
     // Keep track of the last query for debug..
     self::$last_query = $query;
     // Perform the query via std mysql_query function..
     if (SAVEQUERIES) {
         self::timer_start();
     }
     self::$result = self::$link->query($query);
     // If there is an error then take note of it..
     self::$last_error = self::$link->errorInfo();
     if (self::$last_error[0] != '00000') {
         self::print_error();
         return false;
     }
     self::$result->setFetchMode(PDO::FETCH_OBJ);
     self::$num_queries++;
     if (SAVEQUERIES) {
         self::$queries[] = array($query, self::timer_stop());
     }
     $QH = strtoupper(substr($query, 0, strpos($query, ' ')));
     if (in_array($QH, array("INSERT", "DELETE", "UPDATE", "REPLACE"))) {
         $rows_affected = self::$result->rowCount();
         // Take note of the insert_id
         if (in_array($QH, array("INSERT", "REPLACE"))) {
             self::$insert_id = self::$link->lastInsertId();
         }
         // Return number of rows affected
         $return_val = $rows_affected;
     } else {
         if ($QT == "field") {
             self::$col_info[] = self::$result->getColumnMeta();
         } else {
             $num_rows = 0;
             foreach (self::$result as $row) {
                 self::$last_result[$num_rows] = $row;
                 $num_rows++;
             }
             // Log number of rows the query returned
             self::$num_rows = $num_rows;
             // Return number of rows selected
             $return_val = $num_rows;
         }
         //@mysql_free_result(self::$result);
     }
     return $return_val;
 }
示例#3
0
 public static function query($query, $QT = NULL)
 {
     if (empty($query)) {
         if (self::$show_errors) {
             self::bail("SQL IS EMPTY");
         } else {
             return false;
         }
     }
     self::$link or self::connect();
     // filter the query, if filters are available
     // NOTE: some queries are made before the plugins have been loaded, and thus cannot be filtered with this method
     $query = str_replace(self::$config['PREFIX_TAG'], self::$config['PREFIX'], trim($query));
     // initialise return
     $return_val = 0;
     self::flush();
     // Log how the function was called
     self::$func_call = __CLASS__ . '::query("' . $query . '")';
     // Keep track of the last query for debug..
     self::$last_query = $query;
     // Perform the query via std mysql_query function..
     SAVEQUERIES && self::timer_start();
     self::$result = @mysql_query($query, self::$link);
     if (!self::$result) {
         // If there is an error then take note of it..
         return self::print_error();
     }
     self::$num_queries++;
     SAVEQUERIES && (self::$queries[] = array($query, self::timer_stop()));
     if ($QT == 'get') {
         return self::$result;
     }
     $QH = strtoupper(substr($query, 0, strpos($query, ' ')));
     if (in_array($QH, array('INSERT', 'DELETE', 'UPDATE', 'REPLACE', 'SET', 'CREATE', 'DROP', 'ALTER'))) {
         $rows_affected = mysql_affected_rows(self::$link);
         // Take note of the insert_id
         if (in_array($QH, array("INSERT", "REPLACE"))) {
             self::$insert_id = mysql_insert_id(self::$link);
         }
         // Return number of rows affected
         $return_val = $rows_affected;
     } else {
         if ($QT == "field") {
             $i = 0;
             while ($i < @mysql_num_fields(self::$result)) {
                 self::$col_info[$i] = mysql_fetch_field(self::$result);
                 $i++;
             }
         } else {
             $num_rows = 0;
             while ($row = @mysql_fetch_object(self::$result)) {
                 self::$last_result[$num_rows] = $row;
                 $num_rows++;
             }
             // Log number of rows the query returned
             self::$num_rows = $num_rows;
             // Return number of rows selected
             $return_val = $num_rows;
         }
         @mysql_free_result(self::$result);
     }
     return $return_val;
 }