diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/includes/class.dataaccess.php	Sat Oct 20 14:15:10 2007 +0200
@@ -0,0 +1,99 @@
+<?php
+class DataAccess {
+  var $host;
+  var $user;
+  var $pass;
+  var $db;
+  var $arResult;
+  var $query;
+  var $connOpen;
+  var $_nbQueries;
+  
+  var $infos; // Cache contenant les informations sur le visiteur
+  
+  function DataAccess($host=DB_HOST, $user=DB_USER, $pass=DB_PASS) {
+   $this->host=$host;
+   $this->user=$user;
+   $this->pass=$pass;
+   $this->_nbQueries = 0;
+   $this->Connect();
+ }
+ 
+  function Connect($db=DB_NAME) {
+   if($this->connOpen == 1) return;
+   $this->db=$db;
+   $this->connOpen=1;
+   mysql_connect($this->host, $this->user, $this->pass);
+   mysql_select_db($this->db);
+  }
+  
+  function Query($query, $id=0) {
+   $this->query=$query;
+   if($this->connOpen != 1) $this->Connect();
+   $this->arResult[$id]=mysql_query($this->query);
+   if($this->connOpen != 1) $this->Close();
+   if(@$num_rows=mysql_num_rows($this->arResult[$id]))
+	return $num_rows;
+   else
+	return 0;
+  }
+  
+  function debugQuery($query, $id=0) {
+  $rv = $this->Query($query, $id);
+  if(mysql_errno() !== 0)
+	echo("<span class='menu'>\n Query : {$query}<br />\n MySQL Answer : " . mysql_error() . "</span>");
+  return $rv;
+  }
+  
+  function GetRow($id=0) {
+   if(@$row=mysql_fetch_assoc($this->arResult[$id])) {
+    foreach($row as $key => $value)
+        $row_utf[$key]=$this->utf8_ensure($value);
+    return $row_utf;
+   }
+   return 0; 
+  }
+  
+  function GetRawRow($id=0) {
+   if(@$row=mysql_fetch_array($this->arResult[$id])) {
+    return $row;
+   }
+   return 0;    
+  }
+  
+  function Close() {
+   $this->connOpen=0;
+   mysql_close();
+  }
+  
+  function getNbQueries() {
+	return $this->_nbQueries;
+  }
+  
+  function formatDate($timestamp, $decallage=2, $pattern='d/m/Y H:i:s') {
+   return gmdate($pattern, $timestamp + $decallage * 3600);
+  }
+  
+  function seems_utf8($Str) {
+     for ($i=0; $i<strlen($Str)/10 || $i < 100; $i++) {
+	if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb
+	elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb
+	elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb
+	elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb
+	elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb
+	elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b
+	else return false; # Does not match any model
+	for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
+		if ((++$i == strlen($Str)) || ((ord($Str[$i]) & 0xC0) != 0x80))
+		return false;
+	}
+     }
+     return true;
+  }
+  
+  function utf8_ensure($Str) {
+   return $this->seems_utf8($Str)?$Str:utf8_encode($Str);
+  }
+  
+}
+?>