Problème INSERT INTO PHP5
Résolu/Fermé
delaville81
Messages postés
196
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
2 juin 2024
-
31 oct. 2013 à 10:37
delaville81 Messages postés 196 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 2 juin 2024 - 1 nov. 2013 à 11:08
delaville81 Messages postés 196 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 2 juin 2024 - 1 nov. 2013 à 11:08
A voir également:
- Problème INSERT INTO PHP5
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Insert boot media in selected boot device and press a key ✓ - Forum Windows 10
- Monitor will go into standby mode ✓ - Forum Matériel & Système
- Ou est la touche "INSERT" ? ✓ - Forum Clavier
12 réponses
Utilisateur anonyme
31 oct. 2013 à 13:44
31 oct. 2013 à 13:44
Bonjour
Lorsque je la commente, mon echo fonctionne bien.
C'est d'autant plus étonnant que ta requête n'est exécutée qu'après le echo ...
Tu utilises $pdo->quote, ce qui est une très mauvaise idée, c'est déconseillé dans la doc même de PDO. Tu ferais mieux d'utiliser une requête préparée, ça t'éviterait d'oublier les quotes autour de tes values :
Lorsque je la commente, mon echo fonctionne bien.
C'est d'autant plus étonnant que ta requête n'est exécutée qu'après le echo ...
Tu utilises $pdo->quote, ce qui est une très mauvaise idée, c'est déconseillé dans la doc même de PDO. Tu ferais mieux d'utiliser une requête préparée, ça t'éviterait d'oublier les quotes autour de tes values :
$sql = "INSERT INTO compta (date,libelle,debit,credit)
values (:datea,:libelle,:debit,:credit)";
$stmt=$pdo->prepare($sql);
echo '<br />'.$datea.' - '.$libelle.' - '.$debit.' - '.$credit.'<br />';
//exécution de l'insert
$nb = $stmt->execute(array(':datea'=>$datea, ':libelle'=>$libelle, ':debit'=>$debit, ':credit'=>$credit));
delaville81
Messages postés
196
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
2 juin 2024
31 oct. 2013 à 15:23
31 oct. 2013 à 15:23
Merci de ta réponse le père,
Cependant, même avec ta requête ça ne fonctionne pas.
Aurais tu une autre suggestion ?
Merci d'avance
Cependant, même avec ta requête ça ne fonctionne pas.
Aurais tu une autre suggestion ?
Merci d'avance
Utilisateur anonyme
31 oct. 2013 à 15:26
31 oct. 2013 à 15:26
As-tu des messages d'erreur ? Le echo s'affiche-t-il ?
delaville81
Messages postés
196
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
2 juin 2024
31 oct. 2013 à 15:36
31 oct. 2013 à 15:36
Le père,
Je n'ai aucun message d'erreur.
Le echo ne s'affiche pas non plus.
J'ai testé en mettant le requête et le prépare avant la boucle, c'est la même chose.
Je n'ai aucun message d'erreur.
Le echo ne s'affiche pas non plus.
J'ai testé en mettant le requête et le prépare avant la boucle, c'est la même chose.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
31 oct. 2013 à 16:02
31 oct. 2013 à 16:02
Pour voir, par où tu passes, modifie le début de ta boucle :
...
$sql = "INSERT INTO compta (date,libelle,debit,credit)
values (:datea,:libelle,:debit,:credit)";
echo 'coucou1<br />';
$stmt=$pdo->prepare($sql);
echo 'coucou2<br />';
for($i=0;$i<count($_POST['libelle']);$i++)
{
echo 'coucou3<br />';
$datea = $_POST['datea'][$i];
...
delaville81
Messages postés
196
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
2 juin 2024
31 oct. 2013 à 16:40
31 oct. 2013 à 16:40
Merci de ta réponse.
Seul le coucou1 d'affiche.
Seul le coucou1 d'affiche.
Utilisateur anonyme
31 oct. 2013 à 17:20
31 oct. 2013 à 17:20
Peux-tu montrer le code de connexion à la base de données (en cachant tes identifiants bien sûr)
delaville81
Messages postés
196
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
2 juin 2024
31 oct. 2013 à 17:27
31 oct. 2013 à 17:27
Mon fichier connexion.php
Pas la peine de cacher mes identifiants je suis sur MAMP
Pas la peine de cacher mes identifiants je suis sur MAMP
<?php
$hote = 'localhost';
$bdd = 'asso';
$util = 'root';
$mdp = 'root';
try{
$pdo = new PDO('mysql:host ='.$hote.';dbname='.$bdd,$util,$mdp);
$pdo->exec("SET CHARACTER SET utf8");
//echo "ok";
}
catch(PDOException $e){
echo 'Connexion échouée : '.$e->getMessage();
exit();
}
?>
Utilisateur anonyme
31 oct. 2013 à 17:39
31 oct. 2013 à 17:39
Ça a l'air OK... Alors il y a sans doute un problème avec la requête ( table ou champ inexistant...)
$stmt=$pdo->prepare($sql);
if (!$stmt) {
echo "\nPDO::errorInfo():\n";
print_r($pdo->errorInfo());
}
delaville81
Messages postés
196
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
2 juin 2024
31 oct. 2013 à 18:15
31 oct. 2013 à 18:15
Re,
Ni le echo, ni le print_r ne s'affiche.
Ni le echo, ni le print_r ne s'affiche.
Utilisateur anonyme
Modifié par le père. le 31/10/2013 à 20:53
Modifié par le père. le 31/10/2013 à 20:53
Il y a bien un include "connexion.php" au début du script ?
remplace le echo 'coucou1<br />'; par
remplace le echo 'coucou1<br />'; par
if (isset($pdo)) print_r ($pdo); else echo 'pdo non défini';
delaville81
Messages postés
196
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
2 juin 2024
1 nov. 2013 à 11:08
1 nov. 2013 à 11:08
Je devais rêver, j'avais oublié l'appel au fichier de connexion.
Je n'y avais pas penser car dans mon teste précédent, j'exécuter mon script dans la page du formulaire
Désolé de t'avoir faut perdre ton temps pour une erreur de ma part, mais ça m'a permis d'apprendre que le $pdo->quote est déconseillé et que le requête préparées c'est mieux.
Merci pour ton aide précieuse
Je n'y avais pas penser car dans mon teste précédent, j'exécuter mon script dans la page du formulaire
Désolé de t'avoir faut perdre ton temps pour une erreur de ma part, mais ça m'a permis d'apprendre que le $pdo->quote est déconseillé et que le requête préparées c'est mieux.
Merci pour ton aide précieuse