Insert intone produisant aucun résultat

Fermé
totoyo47 Messages postés 260 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 30 mars 2020 - 13 févr. 2015 à 22:31
totoyo47 Messages postés 260 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 30 mars 2020 - 14 févr. 2015 à 11:03
Bonjour,

Après moultes recherches, je me tourne vers vous dans l'espoir de trouver une réponse.

Ma table cb_tags_billets contient trois champs : id, id_tag, id_billet.
Tous les trois sont des int(10) unsigned.

L'insertion ci-dessous ne produit aucun résultat : aucune ligne n'est ajoutée à la table et aucune erreur n'est renvoyée.

$req = $bdd->prepare("INSERT INTO cb_tags_billets (id_tag,id_billet) VALUES (:idTag,:idBillet)");
$req->execute(array(
	':idTag' => $key,
	':idBillet' => $idBillet,
)) or erreurSQL('erreur d\'ajout d\'un tag existant à un billet.');


J'ai essayé en mettant des valeurs manuellement comme :
$req = $bdd->prepare("INSERT INTO cb_tags_billets (id_tag,id_billet) VALUES (3,4)");

Et la ligne est bien ajouté à la table.

Notez que les valeurs de $key et $idBillet sont bien des entiers (testés avec var_dump).

La connexion à la base de données fonctionne car les autres requêtes fonctionnent correctement.

D'avance, merci de votre aide.

A voir également:

1 réponse

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
13 févr. 2015 à 22:36
'lut, c'est étrange, je ne vois pas ce qui cloche dans ton code...
Essaie de mettre un
print_r($bdd->errorInfo());
pour voir si y'a pas une erreur/avertissement qui passerait au travers du filet...
0
totoyo47 Messages postés 260 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 30 mars 2020 133
13 févr. 2015 à 22:39
Merci de ta réponse.

Voilà ce que print_r() me renvoie :

Array ( [0] => 00000 [1] => [2] => ) 
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228 > totoyo47 Messages postés 260 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 30 mars 2020
Modifié par gravgun le 13/02/2015 à 22:44
Aucune erreur... Essaies voir avec des paramètres non nommés:
$req = $bdd->prepare("INSERT INTO cb_tags_billets (id_tag,id_billet) VALUES (?,?)");
$req->execute(array($key,$idBillet));
Au passage, bien que
execute
renvoie false s'il y a eu une erreur, on gère les pépins avec PDO via les exceptions ;)
0
totoyo47 Messages postés 260 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 30 mars 2020 133
13 févr. 2015 à 22:51
Toujours rien :(

Dans le doute, j'ai fait un copier-coller de ton code, mais rien...
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228 > totoyo47 Messages postés 260 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 30 mars 2020
Modifié par gravgun le 13/02/2015 à 22:54
Et ça donne quoi si tu mets des constantes dans l'array d'execute?
(ouais, je tente un peu tout, ça me dépasse que ça ne marche pas)
0
totoyo47 Messages postés 260 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 30 mars 2020 133
13 févr. 2015 à 22:58
Là, ça marche.
Au moins, ça confirme que la connexion à la base de données est bonne.

Sinon, juste avant la requête, j'ai mis :
var_dump($key);
var_dump($idBillet);

et ça me renvoie respectivement :
Int 3
Int 2

Donc, je suppose mes variables sont correctement initialisées.

Moi aussi, j'avoue que ce problème me dépasse :/
0