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.
A voir également:

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