piler/webui/system/database/sphinx.php

85 lines
1.6 KiB
PHP
Raw Permalink Normal View History

2012-02-08 23:14:28 +01:00
<?php
class Sphinx {
private $link;
private $prefix;
public function __construct($hostname, $username, $password, $database, $prefix = NULL) {
list($host, $port) = explode(":", $hostname);
try {
$this->link = new PDO("mysql:host=$host;port=$port;dbname=$database;charset=utf8", $username, $password);
}
catch(PDOException $exception) {
exit('Error: ' . $exception->getMessage() . " on database: $database<br />");
2012-02-08 23:14:28 +01:00
}
$this->affected = 0;
2012-02-08 23:14:28 +01:00
}
public function select_db($database) { }
public function query($sql, $arr = array()) {
2012-02-08 23:14:28 +01:00
$query = new stdClass();
$query->error = 1;
$query->errmsg = "Error";
2012-02-08 23:14:28 +01:00
$query->query = $sql;
$time_start = microtime(true);
$i = 0;
$data = array();
2012-02-08 23:14:28 +01:00
$s = $this->link->prepare($sql);
if(!$s) { return $query; }
2012-02-08 23:14:28 +01:00
$s->execute($arr);
2012-02-08 23:14:28 +01:00
$this->affected = $s->rowCount();
2012-02-08 23:14:28 +01:00
$R = $s->fetchAll();
2012-02-08 23:14:28 +01:00
while(list ($k, $v) = each($R)){
$data[$i] = $v;
$i++;
}
2012-02-08 23:14:28 +01:00
$query->row = isset($data[0]) ? $data[0] : array();
$query->rows = $data;
$query->num_rows = $i;
2012-02-08 23:14:28 +01:00
$query->error = 0;
$query->errmsg = "";
2012-02-08 23:14:28 +01:00
unset($data);
2012-02-08 23:14:28 +01:00
$time_end = microtime(true);
2012-02-08 23:14:28 +01:00
$query->exec_time = $time_end - $time_start;
2012-02-08 23:14:28 +01:00
return $query;
2012-02-08 23:14:28 +01:00
}
public function countAffected() {
return mysql_affected_rows($this->link);
}
public function getLastId() {
return mysql_insert_id($this->link);
}
public function __destruct() { }
2012-02-08 23:14:28 +01:00
}
?>