250 lines
10 KiB
PHP
250 lines
10 KiB
PHP
|
<?php
|
|||
|
class MySQL {
|
|||
|
var $debug; //дебажим?
|
|||
|
var $id; //возвращает или принимает id
|
|||
|
var $num; //возвращает колличество
|
|||
|
var $result; //возвращает результат
|
|||
|
var $or_by_desc;
|
|||
|
var $tmp;
|
|||
|
function to_log($sql){
|
|||
|
if ($this->debug=='1'){
|
|||
|
require_once MYDIR . '/../../api/php/log.php';
|
|||
|
$log1 = new save_log;
|
|||
|
$log1->file_name = @MOD;
|
|||
|
$log1->print_log($sql);
|
|||
|
}
|
|||
|
if ($this->debug=='2')echo $sql;
|
|||
|
}
|
|||
|
|
|||
|
function replacer_param_xml ($text) { // ФУНКЦИЯ очистки кода для xml
|
|||
|
$old1 = array("<", ">", "/");#Ищем вредное ">",, "<"
|
|||
|
$new1 = array("", "", "");#Меняем на полезное">", , "<"
|
|||
|
$text = str_replace($old1, $new1, $text);#Собсно сама замена =)
|
|||
|
$this -> tmp = $text;
|
|||
|
}
|
|||
|
/* коннект к бд */
|
|||
|
function connect($host,$login_mysql,$password_mysql,$baza_name) {
|
|||
|
$db = @mysql_connect($host, $login_mysql, $password_mysql);
|
|||
|
mysql_set_charset('utf8',$db);
|
|||
|
if (!$db) exit("<p>Sorry, not available MySQL server</p>");
|
|||
|
if (!@mysql_select_db($baza_name,$db)) exit("<p>Unfortunately, the database is not available</p>");
|
|||
|
}
|
|||
|
//Изменение базы
|
|||
|
function change_db( $baza_name ) {
|
|||
|
if (!@mysql_select_db($baza_name)) exit("<p>Нет такой базы данных</p>");
|
|||
|
}
|
|||
|
|
|||
|
function get_massiv($table, $where='', $order='', $limit='', $collums='*'){
|
|||
|
$debug=$this->debug;
|
|||
|
@$or_by_desc=$this->or_by_desc;
|
|||
|
/*where - массив колонок и желаемых значений*/
|
|||
|
$sql='SELECT ' . $collums . ' FROM `' . $table . '`';
|
|||
|
if ($where){
|
|||
|
$sql.=' WHERE ';
|
|||
|
foreach ($where as $key => $value) @$str.=' `' . mysql_real_escape_string($key) . '` = "' . mysql_real_escape_string($value) . '" AND ';
|
|||
|
/* отрезаем лишнее */
|
|||
|
$len = strlen( $str )-4;
|
|||
|
$sql .= substr( $str, 0, $len );
|
|||
|
}
|
|||
|
/* выясняем сортировку */
|
|||
|
if ( $order ) $sql .= ' ORDER BY `' . $order . '` ';
|
|||
|
if (@$or_by_desc==1)$sql.=' DESC ';
|
|||
|
if ( $limit ) $sql .= ' LIMIT ' . $limit;
|
|||
|
/* если указан дебаг, пишем в лог */
|
|||
|
if ($debug)$this->to_log($sql);
|
|||
|
/* наконец то запрашиваем */
|
|||
|
$result=mysql_query($sql);
|
|||
|
$this -> num = mysql_numrows( $result );
|
|||
|
while ( $postrow[] = mysql_fetch_array($result));/*Кидаем в переменную*/
|
|||
|
$this -> result = $postrow;
|
|||
|
// unset($postrow);
|
|||
|
return $postrow;
|
|||
|
//echo $postrow;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/* выборка по лайку */
|
|||
|
function get_massiv_like($table, $where='', $order='', $limit='', $collums='*'){
|
|||
|
$debug=$this->debug;
|
|||
|
$or_by_decs=$this->or_by_decs;
|
|||
|
/*where - массив колонок и желаемых значений*/
|
|||
|
$sql='SELECT ' . $collums . ' FROM `' . $table . '`';
|
|||
|
if ($where){
|
|||
|
$sql.=' WHERE ';
|
|||
|
foreach ($where as $key => $value) @$str.=' `' . mysql_real_escape_string($key) . '` LIKE "%' . mysql_real_escape_string($value) . '%" AND ';
|
|||
|
/* отрезаем лишнее */
|
|||
|
$len = strlen( $str )-4;
|
|||
|
$sql .= substr( $str, 0, $len );
|
|||
|
}
|
|||
|
/* выясняем сортировку */
|
|||
|
if ( $order ) $sql .= ' ORDER BY `' . $order . '` ';
|
|||
|
if ($or_by_desc==1)$sql.=' DESC ';
|
|||
|
if ( $limit ) $sql .= ' LIMIT ' . $limit;
|
|||
|
/* если указан дебаг, пишем в лог */
|
|||
|
if ($debug)$this->to_log($sql);
|
|||
|
/* наконец то запрашиваем */
|
|||
|
$result=mysql_query($sql);
|
|||
|
$this -> num = mysql_numrows( $result );
|
|||
|
while ( $postrow[] = mysql_fetch_array($result));/*Кидаем в переменную*/
|
|||
|
$this -> result = $postrow;
|
|||
|
unset($postrow);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/* простой запрос - одно значение, по одному запросу */
|
|||
|
function get_val($table, $where, $collum){
|
|||
|
$debug=$this->debug;
|
|||
|
foreach ($where as $key => $value) @$str.=' `' . mysql_real_escape_string($key) . '` = "' . mysql_real_escape_string($value) . '" AND ';
|
|||
|
$len = strlen( $str )-4;
|
|||
|
$str2 = substr( $str, 0, $len );
|
|||
|
$sql = 'SELECT `' . $collum . '` FROM `' . $table . '` WHERE ' . $str2 . ' LIMIT 1';
|
|||
|
/* если указан дебаг, пишем в лог */
|
|||
|
if ($debug)$this->to_log($sql);
|
|||
|
$result = mysql_query( $sql );
|
|||
|
$this -> result = @mysql_result( $result, 0 );
|
|||
|
return $this -> result;
|
|||
|
}
|
|||
|
|
|||
|
/* Функция добавления контента */
|
|||
|
function add($tab, $massiv) {
|
|||
|
$debug=$this->debug;
|
|||
|
foreach ($massiv as $key => $value) {
|
|||
|
if ($key!='ok'){
|
|||
|
@$tabs.='`' . mysql_real_escape_string($key) . '`, ';
|
|||
|
@$val.='"' . mysql_real_escape_string($value) . '", ';
|
|||
|
}
|
|||
|
}
|
|||
|
$tabs=substr($tabs, 0, strlen($tabs)-2);
|
|||
|
$val=substr($val, 0, strlen($val)-2);
|
|||
|
$sql='insert into `' . $tab . '` (' . $tabs . ') VALUES (' . $val . ')';
|
|||
|
mysql_query($sql);
|
|||
|
if ($debug)$this->to_log($sql);
|
|||
|
$this -> id = mysql_insert_id();
|
|||
|
}
|
|||
|
|
|||
|
/* функция обновления таблиц по ИД */
|
|||
|
function update($tab, $id, $massiv) {
|
|||
|
$debug=$this->debug;
|
|||
|
foreach ($massiv as $key => $value) {
|
|||
|
if ($key!='ok') @$res.='`' . mysql_real_escape_string($key) . '` = "' . mysql_real_escape_string($value) . '", ';
|
|||
|
}
|
|||
|
$res=substr($res, 0, strlen($res)-2);
|
|||
|
$sql='UPDATE `' . $tab . '` SET ' . $res . ' WHERE `id` = "' . $id . '"';
|
|||
|
mysql_query($sql);
|
|||
|
if ($debug)$this->to_log($sql);
|
|||
|
}
|
|||
|
|
|||
|
/* функция обновления таблиц по ИД в формате XML */
|
|||
|
function update_xml($tab, $id, $massiv, $base64=0) {
|
|||
|
$debug=$this->debug;
|
|||
|
if ($base64==1){
|
|||
|
foreach ($massiv as $key => $value) {
|
|||
|
if ($key!='ok') $res.='<' . mysql_real_escape_string($key) . '>' . base64_encode( mysql_real_escape_string($value) ) . '</' . mysql_real_escape_string($key) . '>';
|
|||
|
}
|
|||
|
}else{
|
|||
|
foreach ($massiv as $key => $value) {
|
|||
|
if ($key!='ok') $res.='<' . mysql_real_escape_string($key) . '>' . mysql_real_escape_string($value) . '</' . mysql_real_escape_string($key) . '>';
|
|||
|
}
|
|||
|
}
|
|||
|
$sql='UPDATE `' . $tab . '` SET `xml` = "' . $res . '" WHERE `id` = "' . $id . '"';
|
|||
|
// echo $sql;
|
|||
|
mysql_query($sql);
|
|||
|
if ($debug)$this->to_log($sql);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/* Функция добавления контента */
|
|||
|
function add_xml($tab, $massiv, $base64) {
|
|||
|
$debug=$this->debug;
|
|||
|
if ($base64==1){
|
|||
|
foreach ($massiv as $key => $value) { if ($key!='ok') $res.='<' . mysql_real_escape_string($key) . '>' . base64_encode(mysql_real_escape_string($value)) . '</' . mysql_real_escape_string($key) . '>';}}
|
|||
|
else{
|
|||
|
foreach ($massiv as $key => $value) { if ($key!='ok') $res.='<' . mysql_real_escape_string($key) . '>' . mysql_real_escape_string($value) . '</' . mysql_real_escape_string($key) . '>';}
|
|||
|
}
|
|||
|
$sql='insert into `' . $tab . '` (`xml`) VALUES ("' . $res . '")';
|
|||
|
mysql_query($sql);
|
|||
|
if ($debug)$this->to_log($sql);
|
|||
|
$this -> id = mysql_insert_id();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/* функция удаления по ИД */
|
|||
|
function del_id ( $tab, $id ) {
|
|||
|
$debug = $this -> debug;
|
|||
|
$sql='DELETE FROM `' . $tab . '` WHERE `id` = "' . mysql_real_escape_string( $id ) . '"';
|
|||
|
mysql_query( $sql );
|
|||
|
if ( $debug ) $this -> to_log ( $sql );
|
|||
|
}
|
|||
|
function free_sql ( $sql ) {
|
|||
|
$debug = $this -> debug;
|
|||
|
return mysql_query( $sql );
|
|||
|
if ( $debug ) $this -> to_log ( $sql );
|
|||
|
}
|
|||
|
|
|||
|
/*счетчик записей*/
|
|||
|
function count_sql($tab, $where) {
|
|||
|
$debug=$this->debug;
|
|||
|
/*where - массив колонок и желаемых значений*/
|
|||
|
$sql='SELECT COUNT(*) FROM `' . $tab . '`';
|
|||
|
if ($where){
|
|||
|
$sql.=' WHERE ';
|
|||
|
foreach ($where as $key => $value) @$str.=' `' . mysql_real_escape_string($key) . '` = "' . mysql_real_escape_string($value) . '" AND ';
|
|||
|
/* отрезаем лишнее */
|
|||
|
$len = strlen( $str )-4;
|
|||
|
$sql .= substr( $str, 0, $len );
|
|||
|
}
|
|||
|
if ($debug)$this->to_log($sql);
|
|||
|
/* наконец то запрашиваем */
|
|||
|
$result=mysql_query($sql);
|
|||
|
$this -> result = mysql_result($result, 0);
|
|||
|
unset($postrow);
|
|||
|
return $this->result;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/* не в тему - но пусть письмо админу будет здесь*/
|
|||
|
function send_to_admin($tema, $txt, $email) {
|
|||
|
include_once MYDIR . '/api/php/sendmail.php';
|
|||
|
send_mime_mail( $_SERVER['SERVER_NAME'],
|
|||
|
'info@' . $_SERVER['SERVER_NAME'],
|
|||
|
'Вы',
|
|||
|
$email,
|
|||
|
'UTF-8', // кодировка, в которой находятся передаваемые строки
|
|||
|
'WINDOWS-1251', // кодировка, в которой будет отправлено письмо
|
|||
|
$tema,
|
|||
|
$txt);
|
|||
|
}
|
|||
|
/* функция получения настроек модуля */
|
|||
|
function get_settings($mod){
|
|||
|
unset($a);
|
|||
|
$a['mod'] = $mod;
|
|||
|
$xml = $this -> get_val( 'settings', $a, 'xml' );
|
|||
|
require_once MYDIR . '/api/php/parsexml.php';
|
|||
|
$parce = new parsexml;
|
|||
|
$parce -> make_massiv ( $xml );
|
|||
|
$arr = $parce -> res;
|
|||
|
unset($tmp);
|
|||
|
foreach ( $arr as $key => $value ) $tmp[$key] = $value;
|
|||
|
if (!$tmp)$this->free_sql("INSERT INTO `settings` (`mod`)VALUES ('" . $mod . "');");
|
|||
|
else return $tmp;
|
|||
|
/*
|
|||
|
$tmp=$db->get_settings('im');
|
|||
|
$smarty->assign('im_settings', $tmp);
|
|||
|
*/
|
|||
|
}
|
|||
|
/*
|
|||
|
Берем двухмерный массив данных
|
|||
|
$db = new MySQL;
|
|||
|
$db->connect('localhost','root','','b-install');
|
|||
|
$st['id']=1; - какие колонки с каким значением нужны
|
|||
|
$db -> debug = 2;// 1- пишет лог, 2 показывает на экране
|
|||
|
$db -> get_massiv ( 'pages', $st, $order, $limit ); //исполняем функцию с параметрами
|
|||
|
$massiv = $db->result; //получаем результат
|
|||
|
*/
|
|||
|
}
|
|||
|
?>
|