Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 04/02/2010, 09h58   #1
Nouveau membre du Club
 
Date d'inscription: décembre 2008
Âge: 29
Messages: 60
Par défaut Aide sur les Procédures stockées

Bonne rencontre,

Après une recherche sur ce forum et sur la toile, j’ai l’impression qu’il y a un flou et beaucoup d’informations contradictoire sur les procédures stockées avec PHP.

J’ai déjà réalisé ce genre de travail mais avec un SGBD en MSSQL.

Code :
[]         
//On appel la procédure stockée
$stmt = mssql_init('AddAgence', $conn);
 
//On fait les binds
mssql_bind($stmt, "@Nom", $nom, SQLVARCHAR);
mssql_bind($stmt, "@fkAgence",$agencemere, SQLINT4);
 
//On injecte
$proc_result = mssql_execute($stmt);
 
// On exploite le résultat ici un seule valeur de retour                  
$row = mssql_fetch_row($proc_result)
[]
Ca fonctionne très bien et je n’ai pas rencontré de problème.

Par contre et c’est là que je suis étonné, ce n’est pas très clair avec un SGBD comme Mysql.

J’ai lu que pour utiliser une procédure stockée en PHP avec du Mysql, il fallait utiliser du mysqli ? Vrai ou faux ?

Dans ce cas et si j’ai bien compris, on doit faire comme ceci :

Code :
<?php
 
    $link = mysqli_connect("localhost", $username, $password, $database);
 
    $query = "CALL ps_chercher(ma, liste, de, param);";
 
    $stmt = mysqli_prepare($link, $query);
 
    mysqli_stmt_execute($stmt);
 
    mysqli_stmt_bind_result($stmt, $1, $2, $3, $4, $5);
 
    while (mysqli_stmt_fetch($stmt)) {
 
        printf ("%s - %s - %s - %s - %s<br>", $1, $2, $3, $4, $5);
 
    }
 
    mysqli_stmt_close($stmt);
 
    mysqli_close($link);
 
?>
Ou alors, on peut utiliser du PDO en utilisant ce genre de code :

Code :
<?php
$stmt = $dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);
 
// Appel de la procédure stockée
$stmt->execute();
 
print "La procédure a retourné : $return_value\n";
?>
Oui sauf que j’ai lu que le PDO n’était pas encore très au point… De même, pouvez-vous me dire si c’est toujours d’actualité ?

Il y a t-il d'autres méthodes ?

D'avance, merci.

Amicalement,
Cerbère.
Raphael1980 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/02/2010, 16h31   #2
Nouveau membre du Club
 
Date d'inscription: octobre 2007
Messages: 66
Par défaut

bonjour,

de ce que j'en sais il n'y a pas d'obligation à passer par une requete préparée pour appeler une procédure stockée, tu peux le faire par un simple $mysqli/PdoLink->query($sql). quand à l'obligation d'utiliser mysqli, je ne crois pas.

quand à pdo le driver pdo_mysql est intégré en natif avec php 5.3 comme remplacant du driver mysqlnd utilisé jusqu'ici, utilisé comme base dans des outils style doctrine. Dans un sens certainnement plus au point que ce qu'on pourrait coder à la manno.
Djef-69 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/02/2010, 09h42   #3
Nouveau membre du Club
 
Date d'inscription: décembre 2008
Âge: 29
Messages: 60
Par défaut

Merci pour ta réponse Djef-69.

Tu es la deuxième personne qui me conseil d'utiliser du PDO malgré mes appréhensions qui ne sont certainement pas fondée.

Je pense que nous allons opter pour cette technique.
Raphael1980 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS PHPFAQ PHPCours PHPSources PHPLivres PHPScripts PHPOutils PHPComparatifsZend Framework

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 19h28.


Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.