· 8 years ago · Dec 11, 2017, 04:00 AM
1<?php
2
3include_once(dirname(__FILE__).'/' . "exception.class.php");
4Class CMySQL
5{
6 public function CMySQL($server_,$db_user_,$db_pass_,$db_name_)
7 {
8 $this->isconnected = 0;
9 $this->server = $server_;
10 $this->db_user = $db_user_;
11 $this->db_pass = $db_pass_;
12 $this->db_name = $db_name_;
13 $this->db_err = "";
14 $this->db_cid = 0;
15 return TRUE;
16 }
17 public function Connect()
18 {
19 $this->db_cid = mysql_connect($this->server, $this->db_user, $this->db_pass);
20 if ($this->CheckForError())
21 throw new ExtendException("Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных.<br> server = ".$this->server." user = ".$this->db_user." password = ".$this->db_pass."\r\n".$this->db_err,
22 "Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных");
23 mysql_select_db($this->db_name);
24 if ($this->CheckForError())
25 throw new ExtendException("Ошибка выбора базы данных.<br> db = ".$this->db_name."\r\n".$this->db_err,
26 "Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных");
27 $this->isconnected = 1;
28 return TRUE;
29 }
30 public function SendQuery($query,$value=NULL)
31 {
32 if (!$this->isconnected)
33 throw new ExtendException("ОтÑутÑтвует Ñоединение Ñ Ð±Ð°Ð·Ð¾Ð¹ при попытке выполнить запроÑ\r\n",
34 "Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных");
35 $result = mysql_query($query,$this->db_cid);
36 if ($this->CheckForError()==1)
37 throw new ExtendException("Ошибка Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа<br> query = ".$query."<br>".$this->db_err,
38 "Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð±Ð°Ð·Ð¾Ð¹ данных");
39 if ($value != NULL)
40 return $result;
41 else
42 return TRUE;
43 }
44 public function isLoginFree($login, $table)
45 {
46 $query = sprintf("SELECT COUNT(user_id) FROM %s WHERE user_login='%s' LIMIT 1",
47 mysql_real_escape_string($table,$this->db_cid),
48 mysql_real_escape_string($login,$this->db_cid));
49 $res = $this->SendQuery($query,TRUE);
50 if(mysql_result($res, 0) > 0)
51 throw new ExtendException("Такой логин уже ÑущеÑтвует",
52 "Такой логин уже ÑущеÑтвует");
53 return TRUE;
54 }
55 public function isSuccessAuth($login,$pwd,$table,$secret_key)
56 {
57 $query = sprintf("SELECT user_id, user_password FROM %s WHERE user_login='%s' LIMIT 1",
58 mysql_real_escape_string($table,$this->db_cid),
59 mysql_real_escape_string($login,$this->db_cid));
60 $query = $this->SendQuery($query,TRUE);
61 $data = mysql_fetch_assoc($query);
62 $pwd .= $secret_key;
63 if($data['user_password'] == md5(md5($pwd)))
64 return $data['user_id'];
65 else
66 throw new ExtendException("Ðеверный логин/пароль<br> user_hash = ".md5(md5($pwd))." != ".$data['user_password']." = db_hash",
67 "Ðеверный логин/пароль");
68 }
69 public function GetUpdateString($id,$hash,$insip,$table)
70 {
71 $query = "UPDATE ".mysql_real_escape_string($table,$this->db_cid)." SET user_hash='";
72 $query .= mysql_real_escape_string($hash,$this->db_cid)."'" . $insip;
73 $query .= " WHERE user_id='".$id."'";
74 return $query;
75 }
76 public function IsConnected()
77 {
78 return (bool)$this->isconnected;
79 }
80 public function GetLastError()
81 {
82 return $this->db_err;
83 }
84 private function CheckForError()
85 {
86 $this->db_err = mysql_error();
87 if ($this->db_err)
88 return 1;
89 else
90 return 0;
91 }
92 var $isconnected;
93 var $server;
94 var $db_user;
95 var $db_pass;
96 var $db_name;
97 var $db_err;
98 var $db_cid;
99}
100?>