shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

mssql.php (1849B)


      1 <?php
      2 namespace DB;
      3 final class MSSQL {
      4 	private $connection;
      5 
      6 	public function __construct($hostname, $username, $password, $database, $port = '1433') {
      7 		if (!$this->connection = mssql_connect($hostname. ':' . $port, $username, $password)) {
      8 			throw new \Exception('Error: Could not make a database connection using ' . $username . '@' . $hostname);
      9 		}
     10 
     11 		if (!mssql_select_db($database, $this->link)) {
     12 			throw new \Exception('Error: Could not connect to database ' . $database);
     13 		}
     14 
     15 		mssql_query("SET NAMES 'utf8'", $this->connection);
     16 		mssql_query("SET CHARACTER SET utf8", $this->connection);
     17 	}
     18 
     19 	public function query($sql) {
     20 		$resource = mssql_query($sql, $this->connection);
     21 
     22 		if ($resource) {
     23 			if (is_resource($resource)) {
     24 				$i = 0;
     25 
     26 				$data = array();
     27 
     28 				while ($result = mssql_fetch_assoc($resource)) {
     29 					$data[$i] = $result;
     30 
     31 					$i++;
     32 				}
     33 
     34 				mssql_free_result($resource);
     35 
     36 				$query = new \stdClass();
     37 				$query->row = isset($data[0]) ? $data[0] : array();
     38 				$query->rows = $data;
     39 				$query->num_rows = $i;
     40 
     41 				unset($data);
     42 
     43 				return $query;
     44 			} else {
     45 				return true;
     46 			}
     47 		} else {
     48 			throw new \Exception('Error: ' . mssql_get_last_message($this->connection) . '<br />' . $sql);
     49 		}
     50 	}
     51 
     52 	public function escape($value) {
     53 		$unpacked = unpack('H*hex', $value);
     54 
     55 		return '0x' . $unpacked['hex'];
     56 	}
     57 
     58 	public function countAffected() {
     59 		return mssql_rows_affected($this->connection);
     60 	}
     61 
     62 	public function getLastId() {
     63 		$last_id = false;
     64 
     65 		$resource = mssql_query("SELECT @@identity AS id", $this->connection);
     66 
     67 		if ($row = mssql_fetch_row($resource)) {
     68 			$last_id = trim($row[0]);
     69 		}
     70 
     71 		mssql_free_result($resource);
     72 
     73 		return $last_id;
     74 	}
     75 
     76 	public function __destruct() {
     77 		mssql_close($this->connection);
     78 	}
     79 }