Class langage sql

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 / Exemple :


<?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);

pour 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...)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.