Bienvenue invité ( Connexion | Inscription )
8 Jul 2019, 13:23
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 ! |
|
|
|
![]() |
10 Jul 2019, 00:18
Message
#2
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 792 Inscrit : 14 Nov 2003 Lieu : Genève Membre no 11 656 |
@hellomorld : hélas, non... It doesn't work. J'espérais une solution du style et j'en ai essayé plein, mais on dirait qu'on ne peut pas faire aussi simple avec PDO+prepare
@jaypee : Je suis tombé sur cette page aussi de stackoverflow... Le souci est le même : c'est qu'il faut connaître les colonnes à l'avance et... En fait, je n'ai pas précisé... il faut que j'explique que c'est pour une classe : J'essayais de faire mon propre ORM (pour apprendre) et que j'utiliserais aussi en Ajax. Et je voulais pouvoir insérer des lignes complètement vides avec les valeurs par défaut de la base, le tout sans connaître au préalable les champs. (Donc seulement avec le nom de la table) pour l'utiliser par ex. ainsi : $object->insert(); Le mieux que j'ai trouvé, c'est de préalablement extraire toutes les valeurs par défaut des colonnes de la table avec une première requête comme : $query = $this->db->prepare("SHOW COLUMNS FROM `$table`"), puis une requête pour trouver le prochain id de la table, puis d'extraire des listes des champs et de chaque valeur par défaut avec une dernière requête ($sql = "INSERT INTO `$this->table` ($fields) VALUES ($values)"; $this->db->prepare($sql)->execute();) ..Mais c'est vraiment batard de faire 3 requêtes pour insérer une ligne vide ! |
|
|
|
toluol php PDO insert ligne avec valeurs par défaut ? 8 Jul 2019, 13:23
hellomorld Citation (toluol @ 8 Jul 2019, 13:23) Com... 8 Jul 2019, 16:20
Jaypee Bonjour,
Cette question a été posée sur StackO... 9 Jul 2019, 08:36
Jaypee D'une manière ou d'une autre, si on veut ... 11 Jul 2019, 08:34
scoch Citation (toluol @ 8 Jul 2019, 14:23) Com... 11 Jul 2019, 11:00
toluol Citation (scoch @ 11 Jul 2019, 11:00) Je ... 12 Jul 2019, 15:39
scoch Citation (toluol @ 12 Jul 2019, 16:39) Je... 12 Jul 2019, 16:25
toluol Bon... Effectivement, après avoir fait un tout p... 12 Jul 2019, 20:34
Jaypee Le pattern qui est implémenté ici est l'Acti... 13 Jul 2019, 09:34![]() ![]() |
| Nous sommes le : 12th November 2025 - 07:54 |