Pour ceux que ça intéresse, voici un ensemble de fonctions SQL que j'ai créées pour faire en une ligne ce qui en prend plusieurs à chaque fois. Ca me simplifie pas mal la vie :
sqlFonctions.inc.php
Pour l'adapter à votre site, changer simplement les 4 lignes
define(...)<?php
define('_SERVEUR','serveurBD');
define('_IDENTIFIANT','identifiantBD');
define('_MOT_DE_PASSE','mdpBD');
define('_BASE_DE_DONNEES','nomBD');
[b]// Connexion à la base de données
// (inutile de l'appeler dans vos scripts si vous utilisez les fonctions)[/b]
function getIdConnex()
{
$id=mysql_connect(_SERVEUR,_IDENTIFIANT,_MOT_DE_PASSE)or exit(mysql_error());
mysql_select_db(_BASE_DE_DONNEES,$id)or exit(mysql_error());
return $id;
}
[b]// Requête de type SELECT[/b]
function sqlDelete($from,$where,$limit='')
{
$idConnex=getIdConnex();
$requete='DELETE FROM '.$from.' WHERE '.$where;
if(!empty($limit))
{
$requete.=' LIMIT '.$limit;
}
$requete.=';';
$resultat=mysql_query($requete,$idConnex)or exit($requete.'<br />'.mysql_error());
mysql_close($idConnex);
return $resultat;
}
[b]// Requête de type INSERT[/b]
function sqlInsert($into,$values)
{
$idConnex=getIdConnex();
$requete='INSERT INTO '.$into.' VALUES '.$values.';';
mysql_query($requete,$idConnex)or exit($requete.'<br />'.mysql_error());
$idInsere=mysql_insert_id($idConnex);
mysql_close($idConnex);
return $idInsere;
}
[b]// Requête de type OPTIMIZE[/b]
function sqlOptimize($table)
{
$idConnex=getIdConnex();
$requete='OPTIMIZE TABLE '.$table.';';
mysql_query($requete,$idConnex)or exit($requete.'<br />'.mysql_error());
}
[b]// Requête "en toutes lettres"
// (à utiliser en cas de requête plus complexe comme ALTER)[/b]
function sqlRequest($requete)
{
$idConnex=getIdConnex();
return mysql_query($requete,$idConnex)or exit($requete.'<br />'.mysql_error());
}
[b]// Requête de type SELECT[/b]
function sqlSelect($select,$from,$where='',$group='',$having='',$order='',$limit='')
{
$idConnex=getIdConnex();
$requete='SELECT '.$select.' FROM '.$from;
if(!empty($where))
{
$requete.=' WHERE '.$where;
}
if(!empty($group))
{
$requete.=' GROUP BY '.$group;
}
if(!empty($having))
{
$requete.=' HAVING '. $having;
}
if(!empty($order))
{
$requete.=' ORDER BY '.$order;
}
if(!empty($limit))
{
$requete.=' LIMIT '.$limit;
}
$requete.=';';
$lignes=mysql_query($requete,$idConnex)or exit($requete.'<br />'.mysql_error());
$nbLignes=mysql_num_rows($lignes);
if($nbLignes>0)
{
for($i=0;$i<$nbLignes;$i++)
$resultats[$i]=mysql_fetch_assoc($lignes)or exit($requete.'<br />'.mysql_error());
}
else $resultats=NULL;
mysql_free_result($lignes);
mysql_close($idConnex);
return $resultats;
}
[b]// Requête de type UPDATE[/b]
function sqlUpdate($update,$set,$where='',$limit='')
{
$idConnex=getIdConnex();
$requete='UPDATE '.$update.' SET '.$set;
if(!empty($where))$requete.=' WHERE '.$where;
if(!empty($limit))$requete.=' LIMIT '.$limit;
$requete.=';';
mysql_query($requete,$idConnex)or exit($requete.'<br />'.mysql_error());
mysql_close($idConnex);
}
?>
Pour appeler ce fichier depuis une autre page :
include 'sqlFonctions.inc.php';
// ou
require 'sqlFonctions.inc.php';
Si vous avez des questions, des idées d'amélioration sur ces fonctions, n'hésitez pas.
Modifié par 84mickael (12 Aug 2005 - 12:37)