[RESOLU] Insérer données type int dans BDD

Eléphanteau du PHP | 30 Messages

29 mars 2017, 19:10

Bonjour tout le monde,

J'ai voulu insérer dans ma BDD différentes valeurs, dans ma table Meubles j'ai des champs dimensions qui sont au format Int mais lors de l'ajout dans la base de donnée comment je procède ?

$req = $bdd->prepare('
                      INSERT INTO users (nom, reference, longueur, largeur, poids)
                      VALUES (:nom, :reference, :longueur, :largeur, :poids)');
$req->bindValue(':nom', $_POST['nom']);
$req->bindValue(':reference', $_POST['reference']);
$req->bindValue(':longueur', $_POST['longueur']);
$req->bindValue(':largeur', $_POST['largeur']);
$req->bindValue(':poids', $_POST['poids']);
$req->execute();

Rien ne s'ajoutait à la BDD, du coup j'ai mis tous mes champs en varchar et cela fonctionne mais ça me pose problème je veux pouvoir les mettre au format INT ou autre à l'avenir lorsque j'aurai besoin de faire des calculs etc...

Merci par avance de me mettre sur la voie.

Mammouth du PHP | 1967 Messages

30 mars 2017, 08:39

Il faut que tu utilise le 3e paramètres de bindValue pour définir le type de donnée
http://php.net/manual/en/pdostatement.bindvalue.php
tu peux aussi tester l'éxécution de ta requète et faire afficher les messages d'erreur pour t'aider à situer le problème.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 mars 2017, 10:28

salut,

il faut voir s'il y a une erreur parce que généralement les sgbd font du cast auto de string vers int ;)

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 30 Messages

31 mars 2017, 10:04

Merci pour vos réponses,

@spols au tout début j'avais essayé avec PDO::PARAM_INT en second paramètre. Mais même résultat.

@moogli, le truc c'est que je n'ai pas de message d'erreur j'ai juste pas d'entrée dans ma base de donnée.


EDIT : Bon bah pour qui pour quoi il se trouve qu'aujourd'hui ça marche ^^ effectivement pas besoin de mettre PDO::PARAM_INT il le fait automatiquement mais la dernière fois ça ne marchait pas.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

31 mars 2017, 15:39

attention quand même cela est utile dans certain cas ou le cast n'est pas possible (par exemple une limite ou parfois dans un where).

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 30 Messages

31 mars 2017, 17:41

Oki j'y penserais du coup je le mettrai je te remercie.