![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
Message
#1
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 792 Inscrit : 14 Nov 2003 Lieu : Genève Membre no 11 656 ![]() |
Bonjour,
J'ai un problème d'insertion dans une base de données mysql en PDO. Une insertion basique se faisant ainsi : Code $sql = "INSERT INTO users (id, name, surname) VALUES (?,?,?)"; $pdo->prepare($sql)->execute([$id, $name, $surname]); ... en inscrivant tous les champs et leurs valeurs. Comment insérer une ligne "vide" avec les valeurs par défaut de MySql ? Ceci ne fonctionnant pas : Code $sql = "INSERT INTO $table () VALUES ()"; $pdo->prepare($sql)->execute(); Note : Je suis sous sous php 7.3 D'avance, je vous remercie pour vos lumières ! |
|
|
![]() |
![]()
Message
#2
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 4 933 Inscrit : 1 Jul 2010 Membre no 156 073 ![]() |
Comment insérer une ligne "vide" avec les valeurs par défaut de MySql ? Ceci ne fonctionnant pas : Code $sql = "INSERT INTO $table () VALUES ()"; $pdo->prepare($sql)->execute(); Je viens de tester avec succès : Code $requete = $bdd->prepare('INSERT INTO machin() VALUES()'); $requete->execute(); $requete->closeCursor(); Les valeurs par défaut des champs sont bien appliquées aux champs de la nouvelle ligne. Autre exemple pour insérer la valeur par défaut pour un seul champ : Code $requete = $bdd->prepare('INSERT INTO machin(prenom, nom, age) VALUES(:prenom, :nom, DEFAULT)'); $requete->execute(array( 'prenom' => $prenom, 'nom' => $nom )); $requete->closeCursor(); Le champ "age" a bien la valeur par défaut. Bien entendu, je ne me préoccupe pas de sécurité ici (voir le post de Jaypee). Ce message a été modifié par scoch - 11 Jul 2019, 11:08. -------------------- L'homme n'est que poussière... c'est dire l'importance du plumeau ! Alexandre Vialatte
|
|
|
![]()
Message
#3
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 792 Inscrit : 14 Nov 2003 Lieu : Genève Membre no 11 656 ![]() |
Je viens de tester avec succès : Je n'ai hélas pas le même résultat. Tu es en quelle version de php ? Moi, c'est dans une classe, alors, ça donne ça : Code $requete = $this->db->prepare('INSERT INTO $this->table() VALUES()'); $requete->execute(); $requete->closeCursor(); Mais il n'y a pas de raison que ça change quelque chose... |
|
|
![]()
Message
#4
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 4 933 Inscrit : 1 Jul 2010 Membre no 156 073 ![]() |
Je n'ai hélas pas le même résultat. Tu es en quelle version de php ? PHP 7.3.n Je ne me souviens pas de la version exacte mais me suis conformé avec ta configuration en utilisant PHP 7.3. J’ai testé cela sur un PC du taff avec une installation par défaut de wamp. -------------------- L'homme n'est que poussière... c'est dire l'importance du plumeau ! Alexandre Vialatte
|
|
|
![]() ![]() |
Nous sommes le : 18th July 2025 - 04:43 |