comparison includes/class.dataaccess.php @ 0:629389204276

Import initial
author Franck Deroche <webmaster@defr.org>
date Sat, 20 Oct 2007 14:15:10 +0200
parents
children e4e880f786d4
comparison
equal deleted inserted replaced
-1:000000000000 0:629389204276
1 <?php
2 class DataAccess {
3 var $host;
4 var $user;
5 var $pass;
6 var $db;
7 var $arResult;
8 var $query;
9 var $connOpen;
10 var $_nbQueries;
11
12 var $infos; // Cache contenant les informations sur le visiteur
13
14 function DataAccess($host=DB_HOST, $user=DB_USER, $pass=DB_PASS) {
15 $this->host=$host;
16 $this->user=$user;
17 $this->pass=$pass;
18 $this->_nbQueries = 0;
19 $this->Connect();
20 }
21
22 function Connect($db=DB_NAME) {
23 if($this->connOpen == 1) return;
24 $this->db=$db;
25 $this->connOpen=1;
26 mysql_connect($this->host, $this->user, $this->pass);
27 mysql_select_db($this->db);
28 }
29
30 function Query($query, $id=0) {
31 $this->query=$query;
32 if($this->connOpen != 1) $this->Connect();
33 $this->arResult[$id]=mysql_query($this->query);
34 if($this->connOpen != 1) $this->Close();
35 if(@$num_rows=mysql_num_rows($this->arResult[$id]))
36 return $num_rows;
37 else
38 return 0;
39 }
40
41 function debugQuery($query, $id=0) {
42 $rv = $this->Query($query, $id);
43 if(mysql_errno() !== 0)
44 echo("<span class='menu'>\n Query : {$query}<br />\n MySQL Answer : " . mysql_error() . "</span>");
45 return $rv;
46 }
47
48 function GetRow($id=0) {
49 if(@$row=mysql_fetch_assoc($this->arResult[$id])) {
50 foreach($row as $key => $value)
51 $row_utf[$key]=$this->utf8_ensure($value);
52 return $row_utf;
53 }
54 return 0;
55 }
56
57 function GetRawRow($id=0) {
58 if(@$row=mysql_fetch_array($this->arResult[$id])) {
59 return $row;
60 }
61 return 0;
62 }
63
64 function Close() {
65 $this->connOpen=0;
66 mysql_close();
67 }
68
69 function getNbQueries() {
70 return $this->_nbQueries;
71 }
72
73 function formatDate($timestamp, $decallage=2, $pattern='d/m/Y H:i:s') {
74 return gmdate($pattern, $timestamp + $decallage * 3600);
75 }
76
77 function seems_utf8($Str) {
78 for ($i=0; $i<strlen($Str)/10 || $i < 100; $i++) {
79 if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb
80 elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb
81 elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb
82 elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb
83 elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb
84 elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b
85 else return false; # Does not match any model
86 for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
87 if ((++$i == strlen($Str)) || ((ord($Str[$i]) & 0xC0) != 0x80))
88 return false;
89 }
90 }
91 return true;
92 }
93
94 function utf8_ensure($Str) {
95 return $this->seems_utf8($Str)?$Str:utf8_encode($Str);
96 }
97
98 }
99 ?>