Accueil > > > CLASS LANGAGE SQL
CLASS LANGAGE SQL
Information sur la source
Description
Ce code vous permet de vous connecter à une base de données SQL, elle utilise des fonctions simple comme : sql_query, sql_fetchrow...
L'utilisation de ces classes permet d'écrire un code et de changer facilement de base de données sans pour autant récrire tout un code (vu que les fonctions de base de php changent).
Ici, j'ai mis l'utilisation des librairies suivantes :
- mySQL (3.x, 4.1)
- mySQLi (4.1.2+)
Dans ces librairies se trouvent les fonctions qui sont utiles, vous pouvez en coder d'autres à votre guise.
Vous pouvez aussi faire d'autres librairies en vous basant sur celles-ci.
Ainsi, si un jour vous changez d'hébergeur ou que tout simplement la base de données est différente, vous n'aurez qu'à faire un include différent de fichier pour l'utiliser.
Source
- <?php
- // mySQLi se trouvent dans le .zip
- ?>
-
- <?php
- /***********************************************************
- * mysql.php
- * -----------------
- * Created : Wed, Nov 19, 2003
- * Copyright : (C) LookStrike Team
- * WebSite : http://www.lookstrike.com
- *
- * $Id: mysql.php,v 1.6 2004/09/26 05:23:55 jsgoupil Exp $
- *
- ***********************************************************/
- if(!defined('IN_LS'))die("You are not allowed to access to this page.");
- // Description: mySQL4.1 (mySQL)
- class db {
- var $link=0;
- var $num_queries=0;
- var $query_result;
-
- function db($db_host,$db_user,$db_pass,$db_name) {
- if(constant('NO_DB')==0){
- $this->link = mysql_connect($db_host,$db_user,$db_pass,true);
- @mysql_select_db($db_name,$this->link);
- }
- }
-
- function sql_close(){
- if($this->link)
- return mysql_close($this->link);
- else
- return false;
- }
-
- function sql_query($query){
- unset($this->query_result);
- $this->num_queries++;
- $this->query_result = mysql_query($query, $this->link);
- if($this->query_result)
- return $this->query_result;
- else
- return false;
- }
-
- function sql_numrows($query_id=0){
- if(!$query_id)
- $query_id=$this->query_result;
- return ($query_id)?mysql_num_rows($query_id):false;
- }
-
- function sql_affected(){
- return ($this->link)?mysql_affected_rows($this->link):false;
- }
-
- function sql_dataseek($query_id=0, $num_row){
- if(!$query_id)
- $query_id = $this->query_result;
-
- if($query_id)
- return mysql_data_seek($query_id,$num_row);
- else
- return false;
- }
-
- function sql_fetchrow($query_id=0,$special=true)
- {
- if(!$query_id)
- $query_id = $this->query_result;
-
- if($query_id){
- $result = mysql_fetch_array($query_id, MYSQL_ASSOC);
- if($special==true)
- transform_specialchars($result);
- return $result;
- }
- else
- return false;
- }
-
- function sql_fetchrowset($query_id=0,$special=true)
- {
- if(!$query_id)
- $query_id = $this->query_result;
-
- if($query_id){
- $temp = 0;
- $result = array();
- $this->sql_dataseek($query_id, 0);
- while($temp = mysql_fetch_array($query_id, MYSQL_ASSOC))
- $result[] = $temp;
- if($special==true)
- transform_specialchars($result);
- $this->sql_dataseek($query_id, 0);
- return $result;
- }
- else
- return false;
- }
-
- function sql_insertid(){
- return ($this->link)?mysql_insert_id($this->link):false;
- }
-
- function sql_listtables($db_name){
- $tables_list = array();
- $temp_result = mysql_list_tables($db_name);
- while($temp_data = mysql_fetch_row($temp_result))
- $tables_list[] = $temp_data[0];
- return $tables_list;
- }
-
- function sql_error(){
- $result['message'] = mysql_error($this->link);
- $result['code'] = mysql_errno($this->link);
-
- return $result;
- }
-
- function get_version(){
- $version_result = $this->sql_query("SELECT VERSION() AS version");
- $version_data = $this->sql_fetchrow($version_result);
- return $version_data['version'];
- }
- }
- ?>
<?php
// mySQLi se trouvent dans le .zip
?>
<?php
/***********************************************************
* mysql.php
* -----------------
* Created : Wed, Nov 19, 2003
* Copyright : (C) LookStrike Team
* WebSite : http://www.lookstrike.com
*
* $Id: mysql.php,v 1.6 2004/09/26 05:23:55 jsgoupil Exp $
*
***********************************************************/
if(!defined('IN_LS'))die("You are not allowed to access to this page.");
// Description: mySQL4.1 (mySQL)
class db {
var $link=0;
var $num_queries=0;
var $query_result;
function db($db_host,$db_user,$db_pass,$db_name) {
if(constant('NO_DB')==0){
$this->link = mysql_connect($db_host,$db_user,$db_pass,true);
@mysql_select_db($db_name,$this->link);
}
}
function sql_close(){
if($this->link)
return mysql_close($this->link);
else
return false;
}
function sql_query($query){
unset($this->query_result);
$this->num_queries++;
$this->query_result = mysql_query($query, $this->link);
if($this->query_result)
return $this->query_result;
else
return false;
}
function sql_numrows($query_id=0){
if(!$query_id)
$query_id=$this->query_result;
return ($query_id)?mysql_num_rows($query_id):false;
}
function sql_affected(){
return ($this->link)?mysql_affected_rows($this->link):false;
}
function sql_dataseek($query_id=0, $num_row){
if(!$query_id)
$query_id = $this->query_result;
if($query_id)
return mysql_data_seek($query_id,$num_row);
else
return false;
}
function sql_fetchrow($query_id=0,$special=true)
{
if(!$query_id)
$query_id = $this->query_result;
if($query_id){
$result = mysql_fetch_array($query_id, MYSQL_ASSOC);
if($special==true)
transform_specialchars($result);
return $result;
}
else
return false;
}
function sql_fetchrowset($query_id=0,$special=true)
{
if(!$query_id)
$query_id = $this->query_result;
if($query_id){
$temp = 0;
$result = array();
$this->sql_dataseek($query_id, 0);
while($temp = mysql_fetch_array($query_id, MYSQL_ASSOC))
$result[] = $temp;
if($special==true)
transform_specialchars($result);
$this->sql_dataseek($query_id, 0);
return $result;
}
else
return false;
}
function sql_insertid(){
return ($this->link)?mysql_insert_id($this->link):false;
}
function sql_listtables($db_name){
$tables_list = array();
$temp_result = mysql_list_tables($db_name);
while($temp_data = mysql_fetch_row($temp_result))
$tables_list[] = $temp_data[0];
return $tables_list;
}
function sql_error(){
$result['message'] = mysql_error($this->link);
$result['code'] = mysql_errno($this->link);
return $result;
}
function get_version(){
$version_result = $this->sql_query("SELECT VERSION() AS version");
$version_data = $this->sql_fetchrow($version_result);
return $version_data['version'];
}
}
?>
Conclusion
Donc pour utiliser ce script vous faites ceci :
$db = new db($hostname,$username,$password,$database);
po ur un query :
$result = $db->sql_query("SELECT field1,field2 FROM table WHERE field3=4");
Pour obtenir les lignes :
$line = $db->sql_numrows($result);
Data, si vous n'attendez qu'une seule ligne :
$data = $db->sql_fetchrow($result);
Si vous savez qu'il y a plusieurs lignes (sera dans un tableau [0]['field1']... [1]['field1']...)
$data = $db->sql_fetchrowset($result);
Donc pour traiter ces dernières informations :
for($i=0;$i<$line;$i++)
echo $data[$i]['field1']."\n";
Étant donné que nous ne sommes pas en PHP5, il est préférable de nous même appeler la fonction close :
$db->sql_close();
Vous pouvez regarder dans le fichier les autres fonctions utiles qui sont écrites.
Personnellement, j'utilise ce script tout le temps. Je vous conseil d'en faire autant pour un développement de niveau plus élevé qu'amateur ou tout simplement pour vous simplifier la vie :)
Explication des Constantes
IN_LS -> signifie que vous devez avoir fait un define de cette fonction avant de charger le fichier. Ceci permet de ne pas directement accèder à mysql.php par exemple. Vous pouvez enlever cette ligne si vous le souhaitez.
NO_DB -> signifie que si vous mettez à true cette variable, la db ne sera pas créé (si jamais vous avez des problème de db...)
Historique
- 10 août 2004 18:34:56 :
- Ajout de la fonction transform_specialchars
- 26 septembre 2004 19:03:24 :
- Ajout d'un dataseek au début et à la fin dans le fetchrowset().
- 28 septembre 2004 16:11:41 :
- Explication des Contantes
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
GOOGLE MAPGOOGLE MAP par fatmanajjar
Cliquez pour lire la suite par fatmanajjar
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|