Insert into qui ne fonctionne pas
Résolu/Fermé
A voir également:
- Insert into qui ne fonctionne pas
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Insert boot disk and press any key ✓ - Forum Windows
- Activer touche insert sur ASUS UX32A - Forum Clavier
- Problème touche inser ✓ - Forum Clavier
3 réponses
AstaLaVista1908
Messages postés
85
Date d'inscription
mercredi 24 septembre 2014
Statut
Membre
Dernière intervention
16 juillet 2019
33
28 juin 2019 à 13:49
28 juin 2019 à 13:49
Hello,
à quoi correspond la ligne 81 de ton fichier membres.php ?
à quoi correspond la ligne 81 de ton fichier membres.php ?
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
28 juin 2019 à 14:01
28 juin 2019 à 14:01
Bonjour,
C'est normal : tu as commenté la ligne qui définit $requete, et ensuite tu fais $resultat = $mysqli->query($requete)...
Xavier
C'est normal : tu as commenté la ligne qui définit $requete, et ensuite tu fais $resultat = $mysqli->query($requete)...
Xavier
Ok mais comme je l'ai dit la requête mise en commentaire fonctionnait avec EasyPhp 5.4 mais elle ne fonctionne pas avec 5.6
D'après ce que j'ai pu lire une insertion avec 5.6 doit être
je ne sais pas comment écrire le code pour gérer les erreurs de la requête.
D'après ce que j'ai pu lire une insertion avec 5.6 doit être
exec("INSERT INTO membres (id, nom, prenom, phone, nationalite, mail, password) VALUES('','$name','$firstname', '$phone', '$nation', '$mail', '$password')");
je ne sais pas comment écrire le code pour gérer les erreurs de la requête.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
Modifié le 1 juil. 2019 à 10:49
Modifié le 1 juil. 2019 à 10:49
Bonjour,
Alors déjà, non, exec() ne sert pas à exécuter une requête SQL, ça a un tout autre sens en PHP : https://www.php.net/manual/fr/function.exec.php
Ensuite, j'ai l'impression qu'il y a quelques mélanges dans ton code.
Dans ton fichier de connexion pour commencer : pourquoi te connectes-tu deux fois en utilisant deux méthodes différentes ? Je te suggère de ne retenir que la première, qui définit $mysqli.
Ensuite, exécute tes requêtes comme ça :
Tu dis que ça ne marche plus avec EasyPhp 5.6, mais pourtant ça devrait. Pourrais-tu m'en dire plus ? Tu as un message d'erreur ? Une source ? La doc de Php en tout cas ne dit rien de tel : https://www.php.net/manual/fr/mysqli.query.php
Xavier
Alors déjà, non, exec() ne sert pas à exécuter une requête SQL, ça a un tout autre sens en PHP : https://www.php.net/manual/fr/function.exec.php
Ensuite, j'ai l'impression qu'il y a quelques mélanges dans ton code.
Dans ton fichier de connexion pour commencer : pourquoi te connectes-tu deux fois en utilisant deux méthodes différentes ? Je te suggère de ne retenir que la première, qui définit $mysqli.
Ensuite, exécute tes requêtes comme ça :
$requete = "INSERT INTO membres (nom, prenom, phone, nationalite, mail, password) VALUES('$name','$firstname', '$phone', '$nation', '$mail', '$password')"; $mysqli->query($requete) or die ('Erreur '.$requete.' '.$mysqli->error);
Tu dis que ça ne marche plus avec EasyPhp 5.6, mais pourtant ça devrait. Pourrais-tu m'en dire plus ? Tu as un message d'erreur ? Une source ? La doc de Php en tout cas ne dit rien de tel : https://www.php.net/manual/fr/mysqli.query.php
Xavier
Bonjour,
Merci pour la réponse.
J'ai regardé d'un peu plus près depuis mon post et voilà mon fichier membres.php
Malgré les modifications je n'ai toujours rien dans la table des membres
Merci pour la réponse.
J'ai regardé d'un peu plus près depuis mon post et voilà mon fichier membres.php
<?php //connexion à la bdd $cnx = new PDO('mysql:host=127.0.0.1;dbname=jumelage;charset=utf8', 'root', ''); $nom = isset($_POST['nom']) ? $_POST['nom'] : ''; $prenom = isset($_POST['prenom']) ? $_POST['prenom'] : ''; $telephone = isset($_POST['telephone']) ? $_POST['telephone'] : 'NULL'; $nationalite = isset($_POST['nationalite']) ? $_POST['nationalite'] : ''; $mail = ''; $password = ''; $saisie = ''; if (isset($_POST['enregistrer'])) { if ((!empty($_POST['nom'])) && (!empty($_POST['prenom'])) && (!empty($_POST['nationalite']))){ //on met la 1ere lettre du nom en majuscule $nom = ucfirst($_POST['nom']); $prenom = ucfirst($_POST['prenom']); $telephone =''; $nationalite = ucfirst($_POST['nationalite']); //enregistre le membre //requête avec 5.6 try { $sql = 'INSERT INTO membres(nom, prenom, telephone, nationalite) VALUES(:nom, :prenom, :telephone, :nationalite)'; $req = $cnx->prepare( $sql ); $req->execute(array('nom'=>$nom, 'prenom'=>$prenom, 'telephone'=>$telephone, 'nationalite'=>$nationalite)); $saisie = "Enregistrement de nom :$nom, prénom :$prenom, telephone :$telephone, nationalité: $nationalite effectué"; } catch(Exception $e) { die('erreur : '.$e->getMessage()); } $_POST['nom'] = ''; $_POST['prenom'] = ''; $_POST['nationalite'] = ''; } else { $saisie = "Pas d'enregistrement effectué, les cases ne sont pas renseignées !"; } } ?> <div style="text-align:center"> <p> pour obtenir ß = alt +225</p> <FORM name="research" ACTION = "index.php?page=comite" METHOD="POST"> Nom : <input type="text" name="nom" value="" /><br /><br /> Prenom : <input type="text" name="prenom" value="" /><br /><br /> Nationalité : <input type="text" name="nationalite" value="" /><br /><br /> <input style="cursor:pointer;" type="submit" name="enregistrer" value="Enregistrer" /> </FORM> <?php echo $saisie;?> </div>
Malgré les modifications je n'ai toujours rien dans la table des membres
28 juin 2019 à 14:13
la ligne 81 est celle-ci