da86798b5cceb5809e42daf4e7fa6bfb46eba389
[mtweb] / web / app / data / impl / mw_mysql.php
1 <?php
2
3   class mw_mysql{
4
5     var $link;
6
7     var $host;
8     var $base;
9     var $user;
10     var $password;
11
12     var $EXTENTION_OK;
13
14     function extention_ok(&$env) { return $this->EXTENTION_OK; }
15
16     function mw_mysql($host, $base, $user, $password){
17       $this->host = $host;
18       $this->base = $base;
19       $this->user = $user;
20       $this->password = $password;
21       $this->EXTENTION_OK = function_exists("mysql_connect");
22     }
23
24     function connect($host, $base, $user, $password){
25       $this->link = @mysql_connect($host, $user, $password);
26       if(!$this->link) throw new Exception($this->exception_out("Impossible d'etablir une connection au serveur"));
27       @mysql_query("SET NAMES 'utf8'");
28       if($base){
29         $connected = @mysql_select_db($base, $this->link);
30         if(!$connected) throw new Exception($this->exception_out("Impossible de selectioner la base ".$base));
31       }
32       return true;
33     }
34
35     function select_db($db_name){\r
36       $this->base = $db_name;\r
37       if(!$this->link) $this->connect($this->host, $this->base, $this->user, $this->password);\r
38       return $this->query("USE ".$db_name);\r
39     }
40
41     function table_exists($base, $table){\r
42       if(!$this->link) $this->connect($this->host, $this->base, $this->user, $this->password);\r
43       $this->select_db($base);\r
44       $rst = $this->query("SHOW TABLES");\r
45       while($v_rst = mysql_fetch_array($rst)){\r
46         if(strcmp($v_rst[0], $table) == 0) return true;\r
47       }\r
48       mysql_free_result($rst);\r
49       return false;\r
50     }
51
52     function query($query_string){\r
53       if(!$this->link) $this->connect($this->host, $this->base, $this->user, $this->password);\r
54       $result = @mysql_query($query_string, $this->link);\r
55       if(!$result) throw new Exception($this->exception_out("Syntaxe invalide dans une requete"));\r
56       return $result;\r
57     }
58
59     function fetch_assoc($rst){
60       if($this->link){
61         if($rst){
62           return mysql_fetch_assoc($rst);
63         }
64         else throw new Exception($this->exception_out("fetch_assoc sans result handler"));
65       }
66       else throw new Exception($this->exception_out("fetch_assoc sans connexion"));
67     }
68
69     function insert_id(){
70       if($this->link){
71         return mysql_insert_id($this->link);
72       }
73       else throw new Exception($this->exception_out("insert_id sans connexion"));
74     }
75
76     function free_result($rst){
77       if($this->link){
78         if($rst){
79           return mysql_free_result($rst);
80         }
81         else throw new Exception($this->exception_out("free_result sans result handler"));
82       }
83       else throw new Exception($this->exception_out("free_result sans connexion"));
84     }
85
86     function close(){
87       if($this->link) return mysql_close($this->link);
88       return true;
89     }
90
91     function exception_out($message){\r
92       return "[erreur] mysql : ".$message;\r
93     }
94
95   }
96
97 ?>