mirror of
https://bitbucket.org/jsuto/piler.git
synced 2024-12-25 08:30:12 +01:00
changed the sphinx driver to pdo::mysql
This commit is contained in:
parent
80284419d7
commit
babd0f31f5
@ -4,49 +4,58 @@ class Sphinx {
|
||||
private $link;
|
||||
private $prefix;
|
||||
|
||||
|
||||
public function __construct($hostname, $username, $password, $database, $prefix = NULL) {
|
||||
|
||||
if (!$this->link = mysql_connect($hostname, $username, $password)) {
|
||||
exit('Error: Could not make a database connection using ' . $username . '@' . $hostname);
|
||||
list($host, $port) = explode(":", $hostname);
|
||||
|
||||
try {
|
||||
$this->link = new PDO("mysql:host=$host;port=$port;dbname=$database;charset=utf8", $username, $password);
|
||||
}
|
||||
|
||||
$this->prefix = $prefix;
|
||||
|
||||
mysql_query("SET NAMES 'utf8'", $this->link);
|
||||
mysql_query("SET CHARACTER SET utf8", $this->link);
|
||||
catch(PDOException $exception) {
|
||||
exit('Error: ' . $exception->getMessage() . " on database: $database<br />");
|
||||
}
|
||||
|
||||
|
||||
public function query($sql) {
|
||||
$this->affected = 0;
|
||||
}
|
||||
|
||||
|
||||
public function select_db($database) { }
|
||||
|
||||
|
||||
public function query($sql, $arr = array()) {
|
||||
$query = new stdClass();
|
||||
|
||||
$query->error = 1;
|
||||
$query->errmsg = "Error";
|
||||
$query->query = $sql;
|
||||
$query->error = 0;
|
||||
$query->errmsg = "";
|
||||
|
||||
$time_start = microtime(true);
|
||||
|
||||
$resource = mysql_query(str_replace('#__', $this->prefix, $sql), $this->link);
|
||||
|
||||
if($resource){
|
||||
if(is_resource($resource)){
|
||||
$i = 0;
|
||||
|
||||
$data = array();
|
||||
|
||||
while ($result = mysql_fetch_assoc($resource)) {
|
||||
$data[$i] = $result;
|
||||
$s = $this->link->prepare($sql);
|
||||
if(!$s) { return $query; }
|
||||
|
||||
$s->execute($arr);
|
||||
|
||||
$this->affected = $s->rowCount();
|
||||
|
||||
$R = $s->fetchAll();
|
||||
|
||||
while(list ($k, $v) = each($R)){
|
||||
$data[$i] = $v;
|
||||
$i++;
|
||||
}
|
||||
|
||||
mysql_free_result($resource);
|
||||
|
||||
$query->row = isset($data[0]) ? $data[0] : array();
|
||||
$query->rows = $data;
|
||||
$query->num_rows = $i;
|
||||
|
||||
$query->error = 0;
|
||||
$query->errmsg = "";
|
||||
|
||||
unset($data);
|
||||
|
||||
$time_end = microtime(true);
|
||||
@ -55,20 +64,6 @@ class Sphinx {
|
||||
|
||||
return $query;
|
||||
}
|
||||
else {
|
||||
return $query;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$_SESSION['error'] = 'Error: ' . mysql_error() . '<br />Error No: ' . mysql_errno() . '<br />' . $sql;
|
||||
|
||||
$query->errmsg = 'Error: ' . mysql_error() . '<br />Error No: ' . mysql_errno() . '<br />' . $sql;
|
||||
$query->error = 1;
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function countAffected() {
|
||||
@ -81,10 +76,7 @@ class Sphinx {
|
||||
}
|
||||
|
||||
|
||||
public function __destruct() {
|
||||
mysql_close($this->link);
|
||||
}
|
||||
|
||||
public function __destruct() { }
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user