Accueil > > > CLASS MYSQL (FLOPTWO)
CLASS MYSQL (FLOPTWO)
Information sur la source
Description
Il s'agit d'une petite class (inspirée des class du cakePHP) qui permet de gérer de simples requêtes sous MySQL! Elle supporte les table avec préfixe.
Source
- <?php
- ////////////////////////////////////////////////////////////////////
- // MYSQL
- class MySQL
- {
- # Script réalisé par floptwo (floptwo@gmail.com)
- # Plus d'infos sur www.floptwo.com
-
- var $bdd_hote = 'localhost';
- var $bdd_user = 'root';
- var $bdd_pass = '';
- var $bdd_bdd = 'mabdd';
- var $bdd_prefix = 'flop_';
-
- var $bdd_connected = false;
- var $lastInsertId;
-
- function connection()
- {
- if (mysql_connect($this->bdd_hote, $this->bdd_user, $this->bdd_pass))
- {
- if (mysql_select_db($this->bdd_bdd))
- {
- $this->bdd_connected = true;
- }
- }
- return $this->bdd_connected;
- }
-
- function bdd_prefix($table)
- {
- return $this->bdd_prefix.$table;
- }
-
- function query($sql)
- {
- if($this->connection())
- {
- $array = array();
- $query = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error);
-
- if (eregi("^SELECT",$sql))
- {
- $mysql_num_rows = mysql_num_rows($query);
- if ($mysql_num_rows == 0)
- {
- $array = false;
- }
- elseif ($mysql_num_rows > 0)
- {
- while($row = mysql_fetch_assoc($query))
- {
- $array[] = $row;
- }
- }
- mysql_free_result($query);
- }
- if (eregi("^INSERT",$sql))
- {
- $this->lastInsertId = mysql_insert_id();
- }
- mysql_close();
-
- if (eregi("^SELECT",$sql))
- {
- return $array;
- }
-
- return true;
- }
- return false;
- }
-
- function findAll($table, $conditions_array = null)
- {
- if ($conditions_array != null)
- {
- $i = 0;
- $count = count($conditions_array);
- $conditions = 'WHERE ';
- foreach ($conditions_array as $key => $value)
- {
- $i++;
- if ($key == 'id')
- {
- $conditions .= "$key = '$value'";
- }
- else
- {
- $conditions .= "$key = '$value'";
- }
-
- if ($i != $count) $conditions .= ' AND ';
- }
- }
- return $this->query('SELECT * FROM `'.$this->bdd_prefix($table).'` '.$conditions.' ORDER BY id ASC;');
- }
-
- function find($table, $conditions_array = null)
- {
- if ($conditions_array != null)
- {
- $i = 0;
- $count = count($conditions_array);
- $conditions = 'WHERE ';
- foreach ($conditions_array as $key => $value)
- {
- $i++;
- if ($key == 'id')
- {
- $conditions .= "$key = '$value'";
- }
- else
- {
- $conditions .= "$key = '$value'";
- }
-
- if ($i != $count) $conditions .= ' AND ';
- }
- }
- return $this->query('SELECT * FROM `'.$this->bdd_prefix($table).'` '.$conditions.' LIMIT 1;');
- }
-
- function findById($table, $id)
- {
- return $this->find($table, array('id'=>$id));
- }
-
- function insertInto($table, $fields = array())
- {
- $i = 0;
- $count = count($fields);
- $keys = '(';
- $values = '(';
- foreach ($fields as $key => $value)
- {
- $i++;
- $keys .= "`$key`";
- switch (strtoupper($value))
- {
- case 'NOW()' : case 'NOW' : $values .= 'NOW()'; break;
- default : $values .= "'$value'"; break;
- }
-
- if ($i != $count)
- {
- $keys .= ',';
- $values .= ',';
- }
- }
- $keys .= ')';
- $values .= ')';
-
- return $this->query('INSERT INTO `'.$this->bdd_prefix($table).'` '.$keys.' VALUES '.$values.';');
- }
-
- function getLastId()
- {
- return $this->lastInsertId;
- }
-
- function update($table, $id, $conditions_array)
- {
- $i = 0;
- $count = count($conditions_array);
- $conditions = 'SET ';
- foreach ($conditions_array as $key => $value)
- {
- $i++;
- $conditions .= "$key = '$value'";
-
- if ($i != $count) $conditions .= ', ';
- }
- return $this->query('UPDATE `'.$this->bdd_prefix($table).'` '.$conditions.' WHERE id = '.$id.' LIMIT 1;');
- }
-
- function del($table, $id)
- {
- return $this->query('DELETE FROM `'.$this->bdd_prefix($table).'` '.$conditions.' WHERE id = '.$id.' LIMIT 1;');
- }
-
- # Script réalisé par floptwo (floptwo@gmail.com)
- # Plus d'infos sur www.floptwo.com
- }
-
-
- ?>
-
- <?php
-
- // EXEMPLES D'UTILISATION
-
- $sql = new MySQL();
-
- // SELECT
- // findAll
- $categories = $sql->findAll('categories');
- foreach ($categories as $categorie)
- {
- echo $categorie['id'];
- echo $categorie['title'];
- }
-
- // find
- $categorie = $sql->findById('categories', array('title'=>'flop'));
-
- echo $categorie[0]['id'];
- echo $categorie[0]['title'];
-
- // findById
- $categorie = $sql->findById('categories', '2');
-
- echo $categorie[0]['id'];
- echo $categorie[0]['title'];
-
- // INSERT TO
- if ($sql->insertInto('categories', array('title'=>'nouvelle catégorie', 'description'=>'Ma description')))
- {
- // Voila
- }
- // après un INSERT TO, voila de quoi récupérer la dernière ligne ajoutée
- $newCatId = $sql->getLastId();
-
- // UPDATE
- if ($sql->update('categories', '2', array('title'=>'floptwo')))
- {
- // Voila
- }
-
- // DELETE
- if ($sql->del('categories', '2'))
- {
- // Voila
- }
- ?>
<?php
////////////////////////////////////////////////////////////////////
// MYSQL
class MySQL
{
# Script réalisé par floptwo (floptwo@gmail.com)
# Plus d'infos sur www.floptwo.com
var $bdd_hote = 'localhost';
var $bdd_user = 'root';
var $bdd_pass = '';
var $bdd_bdd = 'mabdd';
var $bdd_prefix = 'flop_';
var $bdd_connected = false;
var $lastInsertId;
function connection()
{
if (mysql_connect($this->bdd_hote, $this->bdd_user, $this->bdd_pass))
{
if (mysql_select_db($this->bdd_bdd))
{
$this->bdd_connected = true;
}
}
return $this->bdd_connected;
}
function bdd_prefix($table)
{
return $this->bdd_prefix.$table;
}
function query($sql)
{
if($this->connection())
{
$array = array();
$query = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error);
if (eregi("^SELECT",$sql))
{
$mysql_num_rows = mysql_num_rows($query);
if ($mysql_num_rows == 0)
{
$array = false;
}
elseif ($mysql_num_rows > 0)
{
while($row = mysql_fetch_assoc($query))
{
$array[] = $row;
}
}
mysql_free_result($query);
}
if (eregi("^INSERT",$sql))
{
$this->lastInsertId = mysql_insert_id();
}
mysql_close();
if (eregi("^SELECT",$sql))
{
return $array;
}
return true;
}
return false;
}
function findAll($table, $conditions_array = null)
{
if ($conditions_array != null)
{
$i = 0;
$count = count($conditions_array);
$conditions = 'WHERE ';
foreach ($conditions_array as $key => $value)
{
$i++;
if ($key == 'id')
{
$conditions .= "$key = '$value'";
}
else
{
$conditions .= "$key = '$value'";
}
if ($i != $count) $conditions .= ' AND ';
}
}
return $this->query('SELECT * FROM `'.$this->bdd_prefix($table).'` '.$conditions.' ORDER BY id ASC;');
}
function find($table, $conditions_array = null)
{
if ($conditions_array != null)
{
$i = 0;
$count = count($conditions_array);
$conditions = 'WHERE ';
foreach ($conditions_array as $key => $value)
{
$i++;
if ($key == 'id')
{
$conditions .= "$key = '$value'";
}
else
{
$conditions .= "$key = '$value'";
}
if ($i != $count) $conditions .= ' AND ';
}
}
return $this->query('SELECT * FROM `'.$this->bdd_prefix($table).'` '.$conditions.' LIMIT 1;');
}
function findById($table, $id)
{
return $this->find($table, array('id'=>$id));
}
function insertInto($table, $fields = array())
{
$i = 0;
$count = count($fields);
$keys = '(';
$values = '(';
foreach ($fields as $key => $value)
{
$i++;
$keys .= "`$key`";
switch (strtoupper($value))
{
case 'NOW()' : case 'NOW' : $values .= 'NOW()'; break;
default : $values .= "'$value'"; break;
}
if ($i != $count)
{
$keys .= ',';
$values .= ',';
}
}
$keys .= ')';
$values .= ')';
return $this->query('INSERT INTO `'.$this->bdd_prefix($table).'` '.$keys.' VALUES '.$values.';');
}
function getLastId()
{
return $this->lastInsertId;
}
function update($table, $id, $conditions_array)
{
$i = 0;
$count = count($conditions_array);
$conditions = 'SET ';
foreach ($conditions_array as $key => $value)
{
$i++;
$conditions .= "$key = '$value'";
if ($i != $count) $conditions .= ', ';
}
return $this->query('UPDATE `'.$this->bdd_prefix($table).'` '.$conditions.' WHERE id = '.$id.' LIMIT 1;');
}
function del($table, $id)
{
return $this->query('DELETE FROM `'.$this->bdd_prefix($table).'` '.$conditions.' WHERE id = '.$id.' LIMIT 1;');
}
# Script réalisé par floptwo (floptwo@gmail.com)
# Plus d'infos sur www.floptwo.com
}
?>
<?php
// EXEMPLES D'UTILISATION
$sql = new MySQL();
// SELECT
// findAll
$categories = $sql->findAll('categories');
foreach ($categories as $categorie)
{
echo $categorie['id'];
echo $categorie['title'];
}
// find
$categorie = $sql->findById('categories', array('title'=>'flop'));
echo $categorie[0]['id'];
echo $categorie[0]['title'];
// findById
$categorie = $sql->findById('categories', '2');
echo $categorie[0]['id'];
echo $categorie[0]['title'];
// INSERT TO
if ($sql->insertInto('categories', array('title'=>'nouvelle catégorie', 'description'=>'Ma description')))
{
// Voila
}
// après un INSERT TO, voila de quoi récupérer la dernière ligne ajoutée
$newCatId = $sql->getLastId();
// UPDATE
if ($sql->update('categories', '2', array('title'=>'floptwo')))
{
// Voila
}
// DELETE
if ($sql->del('categories', '2'))
{
// Voila
}
?>
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Récupérer un tableau d'une bdd [ par Leneuf8000 ]
Rebonjour, j'ai enregistré dans ma base des tableaux dans une table, ce tableau contient des valeurs qui doivent être mises à jour chaq
demande d'information [ par benyouness ]
bonjour tlsj ai organisé klk class et sa mache bien en local( easyphp 3.0 )<?phprequire_once("BDG.class.php"); class BDMySQL extends BDG{ prot
retypage des objets varaibles de session aprés session_start [ par szambaux ]
Bonjour, j'utilise AMFPHP pour mes echanges flash->php, dans mes variables de session je stock mes instance de classe par exemple mysql et user.Le
Affichage page par page [ par Leneuf8000 ]
Bonjour, j'aimerai réaliser un affichage page par page. En fait je voudrai que tout soit gérer dans le même fichier. Ainsi pour l
Optimisation de connection a une base de donn?|e SQL [ par Teclis01 ]
Voil¨¤ en fait j aimerais savoir comment optimiser les connection a une bas de donn¨¦es SQL. J aimerais savoir ds quel cas on doit
Problème checkbox sur liste dynamique [ par ]
Bonjour, je suis bloqué sur un script, pourriez vous m'aider svp. j'ai une page choiximp.php qui extrait de ma base etiquettes table produits
Fonctionne pas sous internet explorer [ par Vin Gazoil ]
Salut à tous! en fait mon code fonctione trés bien sous Mozilla, ce qui n'est pas le cas sous internet Explorer. Mon problème est sur l
Chiffre avec virgule dans Bdd + calculs [ par laubro ]
Bonjour,Voilà j'ai des champs de ma base devant contenir des chiffres représentant des prix, donc il y a besoin de pouvoir mettre des chiffr
hebergement de site web [ par ganou390 ]
comment heberger un site en php mysql comment crée les table mysql merci beaucoup
Problème php newslettter (lancement au chargement de la page) [ par juju901 ]
bonjour; Pouvez vous faire en sorte que la newsletter en se lance quand on clik sur le bouton envoyer et non à son chargement.Voici le code :<
|
Derniers Blogs
CSDL FUNCTIONCSDL FUNCTION par Matthieu MEZIL
Dans mon post précédent , j'ai utilisé une CSDL Function afin de générer une requête SQL avec un DateDiff utilisant la date courante sur la BD à partir d'une requête LINQ. Dans le cadre de ce post , vous avez probablement remarqué que dans le cadre de plu...
Cliquez pour lire la suite de l'article par Matthieu MEZIL LINQ TO ENTITIESLINQ TO ENTITIES par Matthieu MEZIL
Cette semaine je suis à Montréal en tant que speaker sur Entity Framework pour l'évènement confoo . J'en profite pour remercier les organisateurs de cet évènement de m'avoir fait confiance et Access-IT de m'avoir permis d'y participer. En parallèle, j'ai ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010 par neodante
La nouvelle interface d'Office 2010 à amener quelques modifications par rapport à celle de 2007. Certes mineures, ces modifications ont fait disparaître la case à cocher de l'onglet 'Développeur' en première page du panneau du 'bouton Office' (dans Office...
Cliquez pour lire la suite de l'article par neodante [ASTUCE] PATCH POUR MICROSOFT FORUMS NNTP BRIDGE V1[ASTUCE] PATCH POUR MICROSOFT FORUMS NNTP BRIDGE V1 par pierre
Si vous avez téléchargé comme moi Microsoft Forums NNTP Bridge V1 avant le 11 mars 2010 (voir [Astuce] Disponibilité de Microsoft Forum NNTP Bridge Version 1.0), un problème de date localisée pour les non anglais était présent. Un patch est disponibl...
Cliquez pour lire la suite de l'article par pierre PB LORS DE L'INSTALLATION SHAREPOINT 2010.PB LORS DE L'INSTALLATION SHAREPOINT 2010. par Patrick Guimonet
Lors de l'installation de SharePoint 2010, j'ai rencontré un problème de plantage à l'étape 5 du configuration Wizard. Ca se termine sur cet écran : Et en analysant le fichier de journalisation, on remarque vers la fin des 15000 et quelques lign...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|