pp3/au/Db.php (46 lines of code) (raw):

<?php /** * Super simple mysql wrapper * */ class Db { public static $counter=0; private static $_isConnected = false; private static $_insData=array(); private static $_insCounter=0; public static $link; private static function connect() { Db::$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD); if (!Db::$link) { throw new Exception('Can\'t connect to DB: '.DB_USER.':*****@'.DB_HOST); die(); } $db_selected = mysqli_select_db(Db::$link, DB_NAME); if (!$db_selected) { throw new Exception('Can\'t select DB: '.DB_USER.':*****@'.DB_HOST.'/'.DB_NAME); die(); } self::$_isConnected = true; } /** * Simple mysql query wrapper which will log the SQL errors for us * @param string $sql SQL statement to perform * @return resource */ public static function query($sql) { if (self::$_isConnected == false) { self::connect(); } $result = mysqli_query(Db::$link, $sql); if ($result != false) { self::$counter++; return $result; } else { // log error Logger::write(Logger::DEBUG, 'SQL error for: '.$sql.'; ERR: '.mysqli_error(Db::$link)); return false; } } public static function deferredPingsInsert($data) { self::$_insCounter++; self::$_insData[]=$data; if(0==(self::$_insCounter%1000)) { $ret=self::query('INSERT INTO pings (ip_id, ts, path_id, distro_id, config_id, user_id, user2_id, response, size) VALUES '.implode(',', self::$_insData)); self::$_insCounter=0; self::$_insData=array(); return $ret; } return true; } } ?>