Insert intone produisant aucun résultat

totoyo47 Messages postés 260 Date d'inscription   Statut Membre Dernière intervention   -  
totoyo47 Messages postés 260 Date d'inscription   Statut Membre Dernière intervention   -
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 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'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   Statut Membre Dernière intervention   134
 
Merci de ta réponse.

Voilà ce que print_r() me renvoie :

Array ( [0] => 00000 [1] => [2] => ) 
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223 > totoyo47 Messages postés 260 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   134
 
Toujours rien :(

Dans le doute, j'ai fait un copier-coller de ton code, mais rien...
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223 > totoyo47 Messages postés 260 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   134
 
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