Fonction de fonctions PHP

Fermé
nono555 - 2 juil. 2012 à 15:19
 nono555 - 2 juil. 2012 à 23:36
Bonjour,

Je débute en php et j'ai saisi le code pour les fonctions suivantes :

<?php

function db_error_display($err_msg, $link)
{
global $lang;
global $db_string_lang;
printf($err_msg);
if ($link) {
printf($db_string_lang['ERROR_DB'][$lang] . "%d %s", mysql_errno($link), mysql_error($link));
}
}

function db_connect($DSN)
{
global $lang;
global $db_string_lang;
if (!($link = mysql_connect($DSN['hostname'],$DSN['username'],$DSN['password']))) {
db_error_display(sprintf($db_string_lang['ERROR_DB_CONNECT'][$lang], $DSN['hostname'],$DSN['username']), $link);
exit();
}
return $link;
}

function db_select($DSN, $link)
{
global $lang;
global $db_string_lang;
if (!mysql_select_db($DSN['dbname'], $link)) {
db_error_display(sprintf($db_string_lang['ERROR_DB_SELECT'][$lang], $DSN['dbname']), $link);
exit();
}
}

function db_disconnect($link)
{
global $lang;
global $db_string_lang;
if (!mysql_close($link)){
db_error_display(sprintf($db_string_lang['ERROR_DB_DISCONNECT'][$lang], $DSN['hostname']), $link);
exit();
}
}

function db_query($link, $query)
{
global $lang;
global $db_string_lang;
if (!($result = mysql_query($query, $link))) {
db_error_display(sprintf($db_string_lang['ERROR_DB_QUERY'][$lang], $query), $link);
exit();
}
return $result;
}

function db_doquery($DSN, $query)
{
$link = db_connect($DSN);
db_select($DSN, $link);
db_query($link, $query);
db_disconnect($link);
}


?>

Mon problème est que toutes les fonctions s'éxècute très bien sauf la dernière qui reprend l'ensemble des fonctions précédentes. En effet, la fonction doquery devrait me retourner la même chose qu'en lançant les fonctions précédentes mais elle ne me retourne rien.

Quelqu'un voit-il un problème dans le code ?

Merci d'avance.

2 réponses

JooS
Messages postés
2465
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
8 juin 2016
228
2 juil. 2012 à 15:38
Salut !
Comment est ce que tu sais qu'elle ne retourne rien ?!

function db_doquery($DSN, $query) 
{ 
$link = db_connect($DSN); 
db_select($DSN, $link); 

$var = db_query($link, $query); 
var_dump($var);

db_disconnect($link); 
}


Teste ceci !
0
Salut,

Je sais qu'elle ne retourne rien car j'ai testé un programme en appelant les fonctions une à une et ça fonctionnait et une fois avec la fonction "doquery" et il ne retourne rien.

Voilà.

Je vais tester ta solution.

Merci.
0