Problème execute mysql
Résolu/Fermé
iReVElB
Messages postés
70
Date d'inscription
mercredi 24 octobre 2018
Statut
Membre
Dernière intervention
3 août 2023
-
12 mai 2019 à 18:10
iReVElB Messages postés 70 Date d'inscription mercredi 24 octobre 2018 Statut Membre Dernière intervention 3 août 2023 - 13 mai 2019 à 19:04
iReVElB Messages postés 70 Date d'inscription mercredi 24 octobre 2018 Statut Membre Dernière intervention 3 août 2023 - 13 mai 2019 à 19:04
A voir également:
- Mysql n'est pas reconnu en tant que commande interne
- Cle usb non reconnu - Guide
- Invite de commande - Guide
- Ping n'est pas reconnu en tant que commande interne ✓ - Forum Windows
- 'Gcc' n'est pas reconnu en tant que commande interne ou externe, un programme ex�cutable ou un fichier de commandes. - Forum C
- 'Pip' n’est pas reconnu en tant que commande interne ✓ - Forum Programmation
2 réponses
jordane45
Messages postés
38273
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 novembre 2024
4 696
13 mai 2019 à 00:04
13 mai 2019 à 00:04
Bonjour,
Un Execute s'utiliser après un PREPARE
Je rappelle également (à toutes fins utiles...) qu'il faut activer la gestion d'erreur PDO ET placer CHAQUE requête dans un bloc try/Catch comme expliqué ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Donc ton code devient
Je t'invite également à lire (et à appliquer ) les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
.
Un Execute s'utiliser après un PREPARE
Je rappelle également (à toutes fins utiles...) qu'il faut activer la gestion d'erreur PDO ET placer CHAQUE requête dans un bloc try/Catch comme expliqué ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Donc ton code devient
$sql = 'INSERT INTO '.$dossier.'(nompartie, nombre) VALUES(?, ?)'; $datas = array($dossier, $nombre); try{ $insert_partie = $bdd->prepare($sql); $insert_partie->execute($datas); }catch(Exception $e){ echo "Erreur : " / $e->getMessage(); }
Je t'invite également à lire (et à appliquer ) les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
.
NHenry
Messages postés
15163
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 novembre 2024
343
12 mai 2019 à 18:47
12 mai 2019 à 18:47
$insert_partie = ('INSERT INTO '.$dossier.'(nompartie, nombre) VALUES(?, ?)');
Pas besoin des parenthèses ici.
Le . insert la valeur de la variable, donc ici $dossier définit le nom de la table.
Sans plus d'information, impossible d'aller plus loin.
Déjà affiche le contenu de la variable $insert_partie pour voir ce que ça donne.
Pas besoin des parenthèses ici.
Le . insert la valeur de la variable, donc ici $dossier définit le nom de la table.
Sans plus d'information, impossible d'aller plus loin.
Déjà affiche le contenu de la variable $insert_partie pour voir ce que ça donne.
iReVElB
Messages postés
70
Date d'inscription
mercredi 24 octobre 2018
Statut
Membre
Dernière intervention
3 août 2023
11
Modifié le 12 mai 2019 à 19:42
Modifié le 12 mai 2019 à 19:42
Merci pour ta réponse.
Tu va trouvé le code bizarre mais tien
Le code est juste pour moi, c'est pas pour mettre en ligne
Merci pour vos réponse.
Tu va trouvé le code bizarre mais tien
<?php $bdd = new PDO('mysql:host=blablabla;dbname=jeux' , 'blablabla', 'blablabla'); $nombre_a = rand(111111 , 999999); if(!empty($_POST['nompartie']) AND !empty($_POST['nombre'])){ $dossier = $_POST['nompartie'].'_'.$nombre_a; if(is_numeric($_POST['nombre'])){ if(!is_dir($dossier)){ mkdir($dossier); $table = $bdd -> query('CREATE TABLE '.$dossier.' ( id INT PRIMARY KEY NOT NULL, nompartie VARCHAR(100), nombre INT )'); $nombre = htmlspecialchars($_POST['nombre']); sleep(1); $insert_partie = ('INSERT INTO '.$dossier.'(nompartie, nombre) VALUES(?, ?)'); $insert_partie->execute(array($dossier, $nombre)); $fichier = fopen($dossier.'\index.php' , 'w+'); $texte = ' <?php $bdd = new PDO("mysql:host=blablabla;dbname=jeux" , "blablabla", "blablabla"); ?> <!DOCTYPE html> <html> <head> </head> <body> <center> <form method="POST"> <label>Nombre</label><br> <input type="text" name="nb" id="nb"> <input type="submit" name="vd" id="vd"> </form> </center> </body> </html> '; fwrite($fichier, $texte); fclose($fichier); echo '<center>Nom de la partie : '.$dossier.'<br>Nombre : '.$_POST['nombre'].'<br>'; } else { echo '<center><b class="warning">Dossier deja existant.</b></center>'; } } else { echo '<center><b class="warning">Erreur !</b></center>'; } } else { echo '<center><b class="warning">Erreur !</b></center>'; } ?>
Le code est juste pour moi, c'est pas pour mettre en ligne
Merci pour vos réponse.
iReVElB
Messages postés
70
Date d'inscription
mercredi 24 octobre 2018
Statut
Membre
Dernière intervention
3 août 2023
11
Modifié le 12 mai 2019 à 19:48
Modifié le 12 mai 2019 à 19:48
Et le nom de la table, je veux que se sois le nom du dossier, que je mets dans le input
13 mai 2019 à 00:05
13 mai 2019 à 19:04
Sans le try catch, ça m'aurait pas affiché l'erreur, j'ai corrigé d'autre erreurs et appliqué tous les paramètres que tu ma mis en lien.
Sa ma beaucoup aidez.
Merci pour la réponse et je t'ai mis un merci.