SOAP = Webservice qui permet l'échange de données en plusieurs langages via le web.
Salut je dois connecter mon serveur à ma bdd mais celle en SOAP ne fonctionne pas, j'ai essayé pas mal de chose mais en étant débutant dans le milieu je ne vois pas d'autres options, sachant que le code simplement en PhP lui fonctionne bien du coup ça doit surement etre une erreur avec SOAP.
ici je ne met que le serveur SOAP car c'est lui qui se connecte à la BDD mais il reste le client et le service qui servent également à la fonctionnalité du Webservice.
Code Php (qui fonctionne) :
Code Php et SOAP (qui ne fonctionne pas) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 <?php try { // Connexion à la base de données Gardette $bdd = new PDO('mysql:host=localhost;dbname=gardette;charset=utf8', 'root', ''); echo("Base Online"); // Si la base est connectée afficher ce message } catch(Exception $e) { // Si erreur, arreter le processus die('Erreur : '.$e->getMessage());// Si la base n'est pas connectée afficher ce message } // On récupère le contenu de la bdd "Gardette" et de sa table commande $reponse = $bdd->query('SELECT * FROM commande'); // On affiche chaque entrée while ($donnees = $reponse->fetch()) { // Affiche les entrés de la bdd et les associes ?> <br /> <strong>Numéro : </strong><?php echo $donnees['id']; ?> <br /> <strong>Matière : </strong><?php echo $donnees['matiere']; ?> <br /> <strong>Quantité totale : </strong><?php echo $donnees['quantité']; ?> <br /> <strong>Référence commande : </strong><?php echo $donnees['référence']; ?> <br /> <strong>Identification commande : </strong><?php echo $donnees['commande']; ?> <br /> <?php //Connexion à la seconde base de données pour pouvoir récuperer les données lu et les envoyer directement dans la seconde BDD try { // Connexion à la base de données Gardette $bdd = new PDO('mysql:host=localhost;dbname=snir;charset=utf8', 'root', ''); echo("Base Online"); // Si la base est connectée afficher ce message } catch(Exception $e) { // Si erreur, arreter le processus die('Erreur : '.$e->getMessage());// Si la base n'est pas connectée afficher ce message }
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <?php class server { private $con; public function __construct() { $this->con = (is_null($this->con)) ? self::connect() : $this->con; } static function connect() { $con = mysqli_connect("localhost","root",""); $db = mysqli_select_db($con,'gardette'); if (!$db) { echo("Impossible de se connecter : ".mysqli_error()); } else { echo("Connexion réussie"); } return $con; } public function getMatiereName($id_array) { $id = $id_array['id']; $sql = 'SELECT matiere FROM commande'; $qry = mysqli_query($sql, $this->con); $res = mysqli_fetch_array($qry); return $res['matiere']; } } $params = array('uri' => 'localhost/projet/serveur.php'); $server = new SoapServer(NULL, $params); $server->setClass('server'); $server->handle(); ?>
Partager