mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-11 09:49:05 +00:00
9bc219ee14
About Shared Library (shared) and Module Library (module) type of cmake target INSTALL command has different behaviour for ARCHIVE LIBRARY RUNTIME depending on the platform
161 lines
No EOL
3.5 KiB
PHP
161 lines
No EOL
3.5 KiB
PHP
<?php
|
|
class mySQL {
|
|
var $DBc;
|
|
var $DBstats;
|
|
var $cached;
|
|
|
|
function mre($in) {
|
|
if(is_array($in)) {
|
|
foreach($in as $key=>$elem) {
|
|
$in[$key] = mysql_real_escape_string(stripslashes($elem));
|
|
}
|
|
}
|
|
else {
|
|
$in = mysql_real_escape_string(stripslashes($in));
|
|
}
|
|
return $in;
|
|
}
|
|
|
|
function mySQL($err=false) {
|
|
$this->DBstats = array();
|
|
$this->DBc = false;
|
|
if($err === "DIE" || $err === "PRINT" || $err === "ALERT" || $err === "HIDE" || $err === "LOG") {
|
|
$this->DBerror = $err;
|
|
}
|
|
else {
|
|
$this->DBerror = "HIDE";
|
|
}
|
|
$this->resetStats();
|
|
$this->cached = false;
|
|
}
|
|
|
|
function connect($ip,$user,$pass,$db=false) {
|
|
$this->DBc = mysql_pconnect($ip,$user,$pass) or $this->error(mysql_error());
|
|
if($this->DBc && $db) {
|
|
$this->database($db);
|
|
}
|
|
$this->resetStats();
|
|
}
|
|
|
|
function database($db) {
|
|
if(!$this->DBc) {
|
|
return false;
|
|
}
|
|
mysql_select_db($db,$this->DBc) or $this->error(mysql_error());
|
|
return true;
|
|
}
|
|
|
|
function resetStats() {
|
|
$this->DBstats['query'] = 0;
|
|
$this->DBstats['error'] = 0;
|
|
}
|
|
|
|
function getStats() {
|
|
return $this->DBstats;
|
|
}
|
|
|
|
function sendSQL($query,$handling="PLAIN",$buffer=false) { // can be INSERT, DELETE, UPDATE, ARRAY, NONE, PLAIN
|
|
#if($this->cached !== false) {
|
|
#$this->unlinkSql($this->cached);
|
|
#}
|
|
if(!$this->DBc) {
|
|
return false;
|
|
}
|
|
|
|
if($buffer === false && $handling !== "PLAIN") {
|
|
$res = mysql_unbuffered_query($query,$this->DBc) or $this->error(mysql_error(),$query);
|
|
}
|
|
else {
|
|
$res = mysql_query($query,$this->DBc) or $this->error(mysql_error(),$query);
|
|
}
|
|
|
|
#$this->cached = $res;
|
|
|
|
$this->DBstats['query']++;
|
|
|
|
if($res) {
|
|
if($handling === "INSERT") {
|
|
$tmp = mysql_insert_id($this->DBc) or $this->error(mysql_error());;
|
|
$this->unlinkSql($res);
|
|
return $tmp;
|
|
}
|
|
elseif($handling === "DELETE" || $handling === "UPDATE") {
|
|
$tmp = mysql_affected_rows($this->DBc) or $this->error(mysql_error());
|
|
$this->unlinkSql($res);
|
|
return $tmp;
|
|
}
|
|
elseif($handling === "ARRAY") {
|
|
$tmp = $this->parseSql($res);
|
|
$this->unlinkSql($res);
|
|
return $tmp;
|
|
}
|
|
elseif($handling === "NONE") {
|
|
$this->unlinkSql($res);
|
|
return true;
|
|
}
|
|
else {
|
|
return $res;
|
|
}
|
|
//mysql_free_result($res);
|
|
}
|
|
else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function unlinkSql($res) {
|
|
@mysql_free_result($res);
|
|
}
|
|
|
|
private function parseSql($res) {
|
|
$data = array();
|
|
$k = 0;
|
|
while($tmp = mysql_fetch_array($res,MYSQL_ASSOC)) {
|
|
$data[$k] = $tmp;
|
|
$k++;
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
function getNext($res) {
|
|
if($res) {
|
|
if($tmp = mysql_fetch_array($res,MYSQL_ASSOC)) {
|
|
return $tmp;
|
|
}
|
|
else {
|
|
return false;
|
|
}
|
|
}
|
|
else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private function error($error,$query = false) {
|
|
$this->DBstats['error']++;
|
|
|
|
if($query != false) {
|
|
$error .= " -->|".$query."|<--";
|
|
}
|
|
|
|
switch($this->DBerror) {
|
|
case 'DIE':
|
|
die($error);
|
|
break;
|
|
case 'PRINT':
|
|
echo "<br><b>".$error."</b><br>";
|
|
break;
|
|
case 'ALERT':
|
|
echo "<script language='javascript'>\n<!--\nalert(\"database error:\\n".mysql_real_escape_string($error)."\");\n// -->\n</script>";
|
|
break;
|
|
case 'LOG':
|
|
logf("MySQL ERROR: ".$error);
|
|
break;
|
|
default:
|
|
flush();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
?>
|