begin process at 2012 05 27 22:09:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > CLASS LANGAGE SQL

CLASS LANGAGE SQL


 Information sur la source

Note :
8,6 / 10 - par 5 personnes
8,60 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Niveau :Initié Date de création :23/07/2004 Date de mise à jour :28/09/2004 16:11:40 Vu / téléchargé :7 333 / 800

Auteur : GRenard

Ecrire un message privé
Site perso
Commentaire sur cette source (42)
Ajouter un commentaire et/ou une note

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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 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

Source avec Zip Source avec une capture LECTURE/ÉCRITURE DE TAGS ID3 VERSION 1 ET VERSION 2
Source avec Zip GÉRER LES ÉCHAPPEMENTS DE CARACTÈRES SUR TABLEAUX MULTIDIMEN...
Source avec Zip Source avec une capture PROJECT SELECTOR (SÉLECTION FACILE DE PROJET AVEC APACHE) ET...
Source avec Zip Source avec une capture STATISTIQUES DE VOTRE PROJET (NOMBRE DE DOSSIERS, FICHIERS, ...
Source avec Zip Source avec une capture AFFICHAGE TABLEAU AVEC TEMPLATE CLASSE

 Sources de la même categorie

Source avec Zip ORM : DAO, ACTIVERECORD ET DBLIST par Reldan
Source avec une capture CET EXTRAIT PERMET D'AJOUTER DANS UN TABLEAU UNE AGRÉGATION ... par Denis007
EXPORT DE BASE AU FORMAT CSV par remib74
Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
[CRON] INSERT ON DUPLICATE KEY UPDATE par pierreSabatier

Commentaires et avis

Commentaire de Anthomicro le 23/07/2004 23:03:00

Salut ;-)

juste un tout petit détail sans importance :

remplace $this->num_queries++; par $this->num_queries+=1;

C'est légèrement plus rapide.

Sinon pour le reste c'est du très bon ;-)

a ++

Commentaire de GRenard le 24/07/2004 01:15:24

Ta remarque ma fait énormément cherché... J'ai regardé dans mes 5 livres de programmation et il n'en parle pas.
Ils disent seulement que la compilation se fait un peu plus rapidement pour les formes abrégées ($test = $test + 1; mais plutot $test+=1)
J'ai alors fais des tests pour vérifier $a++; et $a+=1;
Figure toi que sous linux, il y a quand même une grande différence et c'est beaucoup plus rapide faire ++ que +=1; (sous Windows, c'est très instable)
Alors il faut me dire d'ou tu tiens tes sources. Car ++ est plus rapide que +=1; !

Commentaire de Anthomicro le 24/07/2004 08:23:39

Et bien j'ai fait des benchmarks sous windows (avec mon P4) et c'est beaucoup plus rapide de faire +=1

Pour linux je vais pas cramer le serveur mutualisé...

En tout cas chez moi +=1 est plus rapide (sur une boucle de 50000 itérations :

$i++ : 0.239 secondes
$i+=1 : 0.231 secondes

bien sûr j'ai pris la valeur la plus faible obtenue)

a ++

Commentaire de Anthomicro le 24/07/2004 08:27:15

Je viens de faire des tests sous linux et y'a pas de différence notable (sur mon hébergement mutualisé)

Donc pour moi je garde +=1, en plus j'ai vu des sites d'optimisation php qui conseillent de mettre cette forme.

a ++

Commentaire de Anthomicro le 24/07/2004 08:28:08

heu mes tests étaient basés sur une boucle de 500.000 itérations et pas 50.000

Commentaire de GRenard le 24/07/2004 10:00:14

Je viens de faire des tests : 1 000 000 itérations * 10 et faire la moyenne sur une box linux hébergement profesionnel (woua c'est encore plus rapide que chez moi :P). Les valeurs sont données pour 1 000 000 d'itérations.

++ : 0.87569527272727 secondes
+= : 0.97009354545455 secondes

(Chez mon linux à moi 1ghz, j'atteignait 2 secondes, et sur mon Windows 800mhz, j'atteignais quasiment 3 secondes :P)

Tout ca pour dire que tu ne ma pas convaincu... Je trouve un écart beaucoup plus grand que le tiens (même avec 2 fois plus d'itérations) et il est pas dans le même sens...
(La box linux professionel est sur PHP4, mais même la, je ne crois pas que Zend2 ait changé grand chose pour PHP5 dans les ++ et +=)

Commentaire de minta le 24/07/2004 17:55:10

Il faut croire que selon la configuration de votre serveur les données sont différentes. Pour un vrai test vous devez avoir exactement le meme système et etre dans les memes conditions. Enfin, vous disputez pour des différences aussi minimes, ce n'est pas sérieux pour des programmeurs de votre trempe. À GRenard j'aime bien tes critiques sur les différents postes et cela m'emmène à tendre vers une meilleure programmation.

Commentaire de Anthomicro le 24/07/2004 19:47:43

Ca doit dépendre du processeur je pense ;-)

Ceci n'enlève en rien de toute façon la qualité de cette classe.

Du beau boulot ;-)

Bye

Commentaire de Zacland le 29/07/2004 11:08:43

Je rejoint Minta sur les critiques de GRenard qui poussent à être plus rigoureux en programmation, si ce n'est que je le trouve un peu "vient que j't'écrase" des fois, mais bon ... chacun son style :p

Merci pour la class GRenard. :)

  -=Zac

Commentaire de Elkouo le 02/08/2004 15:54:29

Effectivement, cette class s'avère utile.
J'aimerai savoir si je peux, dans une autre class, faire des requete en me servant de cette class ?

Commentaire de GRenard le 02/08/2004 16:47:44

Tu peux très bien...
Ton autre classe peut appeler des fonctions de cette classe.
Par exemple dans ton constructeur tu enregistre
$this->db = new mysql(....);

et dans une de TES fonctions tu peux faire
$this->db->sql_query(...);

Commentaire de Elkouo le 02/08/2004 17:19:16

Les possibiltés sont immenses! Merci.
Sinon, dans ta class, je rajouterai une fonction qui permet de savoir si un enregistrement est présent ou non. En effet la requête renvoie au minimum une ligne donc ta fonction sql_fetchrow ne permet pas de savoir si l'enregistrement est trouvé.

Commentaire de babid le 03/08/2004 08:57:22

Salut,

En effet GRenard, ta class est GENIALE.
L'avantage est sa portabilité, ceux qui est très important aujourd'hui car vu les variations de prix de certains hébergeurs, un patron peut vite changer d'avis et vous retrouver dans un belle MERD... si vous devez miger le code d'un hébergeur à un autre.
Petit bémol, à mon goût, c'est de faire une gestion des erreurs un peu plus poussé, comme par exemple, faire un envoie de mail a l'administrateur avec le détail des erreurs et affiché un message d'excuse pour l'internaute (il n'a pas besoin de connaitre le détail des erreurs) Il me semble qu'il y a une source à ce sujet, je cherche.
Voilà, ce n'est pas de moi, mais ca peut servir de début :
<?php
function debug_mysql()
{
$mail=true; // Si vous voulez qu'un mail vous soit envoyé en cas d'erreur (true
pour oui / false pour non

/* Affectation des lignes html du débug à la variable $debug */
$debug='<div align="center"><font size="4"><u>Erreur SQL !</u></font></div><br>
';
$debug .='A la ligne '.__LINE__.' dans le fichier '.__FILE__;
$debug .='<br>MySQL a répondu : '.mysql_error();

echo '<br>Un mail a été envoyé à l\'administrateur pour corriger ce bug,
il sera réparé dans les plus brefs délais.<br>Merci de votre compréhension.'; // Affichage de l'erreur

mysql_close(); // Déconnexion de la BDD

if($mail)
{
  /* Envoi du mail contenant l'erreur au format html */
  $to = 'bistory1@hotmail.com'; // votre email
  $sujet ='Erreur rencontrée lors de l\'exécution de '.__FILE__; // Sujet du mes
sage
  
  $from ="From: $to \r\n";
  $from .="Content-Type: text/html; charset=us-ascii\r\n"; // Définition du form
at html
  
  if(!mail($to,$sujet,$debug,$from))
   {
  echo 'Problème lors de l\'envoi du mail';
  }
}
}
?>
bon ca vaut ce que ca vaut mais l'idée est là.


Bonne continuation


PS: déolé GRenard j'ai voulu posté hier mais le site a planté.

Bye

Commentaire de jpabeille13 le 05/08/2004 14:30:03

transform_specialchars ?? c'est quoi ??

Commentaire de babid le 05/08/2004 16:14:52

Salut jpabeille13,

En fait je pense que transform_specialchars est une fonction que notre cher amis GRenard a omis de mettre dans le source, un oubli, une erreur ça arrive à tout le monde. Je pense que quand il lira ce post, il mettra à jour sa source !!
Enfin, je ne veux pas dire de bétise mais je pense que c'est une fonction qui utilise les fonctions htmlspecialchars() et/ou htmlentities(). Mais je pense que GRenard se fera un plaisir de nous expliquer cela en détail.

Bye

Commentaire de jpabeille13 le 07/08/2004 18:50:55

de jpabeille13
Je pense comme toi Babid mais j’ai fait la remarque car de la part de GRenard  qui râle toujours sur des détails c’est pas sérieux….

Commentaire de aquewel le 10/08/2004 18:11:54

Grenard faut que tu m'aide ;-)

j'utlise ta class seulement j'ai une erreur que je comprends pas

Fatal error: Call to undefined function: transform_specialchars() in c:\ on line 68

Commentaire de GRenard le 10/08/2004 18:42:22

Je m'excuse, la fonction transform_specialchars() permet d'executer htmlspecialchars() sur toutes les entrées d'un tableau (qui peut sortir de la base de données :))
Si vous ne voulez pas utiliser la fonction, vous n'avez qu'à passer FALSE comme 2e argument de la fonction sql_fetchrow ou sql_fetchrowset.
Ici la fonction est à la suite de la classe. Il est conseilllé d'appeler un fichier "function.php" avant d'appeler la classe. (Comme dans le Zip)


Petit rappel : Il est préférable d'enregistrer vos informations correctement pas déjà formaté pour un affichage. (dans la base de données, si vous faites un insert, laissez les <; ne les transformez pas ! Car si vous lez voulez plus tard comme ca, vous n'avez qu'à les demander, et si vous les voulez transformé, vous les transformez.)

Commentaire de aquewel le 23/08/2004 21:40:47

comment on fait pour mettre un des données en trois colonnes avec ton script ????????????????????

Commentaire de GRenard le 23/08/2004 22:03:51

C'est plutot bizarre comme question ... mais bon, tu dois faire un SELECT champ1, champ2, champ2 FROM table...
ainsi tu auras 3 colonnes...
tk, si c'est pas ca que tu veux, repose mieux ta question !

Commentaire de aquewel le 24/08/2004 02:56:52

placer un champs ". $data[$i]['region']." qui me retourne 21 resultats sur trois colonnes car j'arrive pas a le faire avec la methode traditionnel !

Commentaire de fluminis le 12/09/2004 12:20:15

Merci pour cette source tres interessante.

je me pose quand meme une petite question.
Je comprends qu'utiliser une classe apporte bien des avantages mais que ce passe-t-il si ma classe Mysql (ou tout autre classe) contient des dizaines et des dizaines de lignes de code avec des dizaines de fonctions et qu'au final, j'utilise dans mon fichier php une ou deux de ces fonctions.
Que fait php de tout ce code non execute et non utilise?
Est ce que c'est couteux en temps d'execution?

Commentaire de GRenard le 13/09/2004 05:07:07

PHP se "compile" sur le coté serveur chaque fois que quelqu'un appelle une page. Ce n'est pas des dizaines ni même des centaines de lignes qui causeront une différence à vos scripts.
Certains programme inclus un fichier de fonctions contenant que des fonctions et qui peut faire 2000 lignes pour un fichier. En tant que tel, une fonction tout seul ne fait rien. Ceci influence peut-etre un peu le temps d'execution, mais ce n'est pas énorme.

Commentaire de fluminis le 13/09/2004 09:21:05

D'accord, merci... alors Classes me voici :o)

Commentaire de GRenard le 26/09/2004 19:05:19

Modification de la source ! Meilleur gestion si vous faites un fetchrow et un fetchrowset ensuite (ou inversement) !

Commentaire de jpabeille13 le 27/09/2004 21:31:34

??? IN_LS et NO_DB c'est quoi??? c'est où qu'on les definit?

Commentaire de GRenard le 28/09/2004 16:12:50

Voila, j'ai rajouté une explication des constantes... tu les définies dans le fichier avant d'appeler le file database !

Commentaire de gastonzine le 12/10/2004 18:14:13

Salut GRenard,
bravo pour ton codage. C'est du haut de gamme.
J'ai cependant une question.
As-tu une technique pour utiliser ta classe pour afficher le résultat de n'importe quelle requete?
Je voudrais faire un gestionnaire de requete à partir de ta classe. Mais le problème (ou je n'ai pas tout compris), c'est qu'il faut connaitre à l'avance le nom des champs....

for($i=0;$i<$line;$i++)
  echo $data[$i]['field1']."\n";

Quand on code avec ta classe, il faut savoir à l'avance ce que l'on veut afficher.... y'a-t-il un moyen de faire une boucle qui afficherait tous les champs de toutes les lignes?

exemple: SELECT nom, age, ville FROM table...

Et la boucle serait capable de compter qu'il y a 3 champs par ligne et afficherait alors:

sebastien 26 Metz
Gerard 32 Lyon
....
....


Si t'as 5 minutes ou si tu sais comment faire... Ou une piste...

Merci!!!
@+

Commentaire de GRenard le 12/10/2004 19:18:45

premièrement dans ton select si tu as mis les champs c'est que tu les connais ;)
Mais si par exemple tu ne les connais pas (tu fais un select * ... meuh c'est pas bien ca)
Tu peux créer une fonction simple à part qui permet d'intéragir avec la classe. Tu peux modifier la classe... (mmm c moins bon ca mais si c'est une bonne fonctionnalité c'est une bonne idée)
et tu utilises le SELECT suivant :
SHOW COLUMNS FROM tables
tu vas ensuite retrouver dans l'argument [$i]['fields'] la valeur des champs que tu recherches !
Donc c'est un peu comme faire 2 select si tu veux vraiment faire comme ca !

Bonne chance !

Commentaire de GRenard le 12/10/2004 19:21:06

Pardon, plus précisément c'est Field le retour du SQL ! essais le dans phpmyadmin et tu vas voir ce que ca retourne !
(ne pas utiliser mysql_list_fields car ca n'existe pas en mysqli...)

Commentaire de gastonzine le 12/10/2004 20:38:35

Un gros merci pour tes précisions!
Très sympa =)
Je vais me creuser un peu. Mais tu m'as bien aidé.
Merci l'ami!

Commentaire de Gorrk le 08/12/2004 14:22:40

Pas mal comme classe, quelques regrets cependant, elle n'est pas ecrite en php5 et je suis partisant d'une ecriture plus claire (je ne dis pas que la mienne est la plus claire :-p).

Concernant ma classe MySQL, bientôt je mettrai en ligne une classe MySQLi avec les mêmes methodes.

Commentaire de jeff le 09/12/2004 12:29:54

petite précision importante, Ce code permet de se connecter à une base de données MySQL et non à une base de données SQL !
mais je la trouve très sympas !

Commentaire de GRenard le 09/12/2004 23:36:34

J'ai mis ceci :

Ici, j'ai mis l'utilisation des librairies suivantes :
- mySQL (3.x, 4.1)
- mySQLi (4.1.2+)

Tu peux rajouter d'autres librairies pour les faire fonctionner sur d'autres sortes de base de données.
Donc, c'était déjà précisé.

Commentaire de twisteurwin le 08/01/2005 12:51:51

Salut !

Je suis débutant en php, j'ai dl le .zip que tu as mis GRenard et pardonne moi d'avance mais je ne comprends pas comment ca marche et à quoi ca sert...J'ai une erreur lorsque j'essaye d'afficher index.php (You are not allowed to access to this page.)
Pourtant j'ai essayé de comprendre en lisant les commentaires mais je ne comprends pas.

J'espère que qq voudra bien me l'expliquer ... :-(
Merci pour tout
*Prière de ne pas m'envoyer sur des sites de débutants car il y a rien de pire comme réponse

Commentaire de GRenard le 08/01/2005 17:14:59

Tu n'as pas tout lu l'explication que j'ai donné ...
Regarde en haut : "Explication des constantes"
Et dans les commentaires on en a parlé aussi...
http://www.php.net/define (ca, c'est pas un site de débutant)

Ensuite, bah le script c'est bien écrit à quoi il sert et comment l'utiliser... ya tous les exemples nécessaires :) Relis bien le texte que j'ai écrit plus haut et si tu ne comprends toujours pas, tu poseras une question plus spécifique :)

Bonne Chance.

Commentaire de magicyoda le 17/07/2005 22:25:58

Hello, merci pour ce code je vais voir ce que je peux en tirer ! ;)
Ca serait pas interessant de faire un addslashes() automatique lors d'une insertion ?

Commentaire de GRenard le 17/07/2005 23:03:32

Bah je ne l'ai pas gèré auto là... si tu veux tu peux l'ajouter... moi je le gère ailleurs avec cette fonction http://www.phpcs.com/code.aspx?ID=29889

Commentaire de dpozega le 12/09/2007 08:49:43

Bonjour, très sympa cette class mais il manque une fonction mysqli_free_result non ?

Commentaire de phpajax le 11/10/2007 01:02:53 8/10

bonsoir,

$line = $db->sql_numrows($result);
$data = $db->sql_fetchrow($result);

for($i=0;$i<$line;$i++)
  echo $data[$i]['field1']."\n";

----> deux connections a la base, alors qu'on peut eviter la première en mettant $data[$i] a la place de $i<$line et enlever la ligne $line = $db->sql_numrows($result); ;)


--->
for($i=0;isset($data[$i]);$i++)
  echo $data[$i]['nom']."\n";

sinon, très belle source !

Commentaire de phpajax le 11/10/2007 01:11:29

et je mettrais bien
mysql_free_result($result);
dans la fonction  sql_dataseek

Commentaire de Merzhin56 le 17/08/2008 16:34:18 9/10

Je n'ai pas encore testé, mais source propre, claire, simple, et fonctionnelement c'est exactement ce que j'aurai codé si je n'avais pas trouvé cette source.

Il me reste à la tester, mais merci beaucoup pour ce code.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,544 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales