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 ! |
|
|
|
![]() |
13 Jul 2019, 09:34
Message
#2
|
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Le pattern qui est implémenté ici est l'ActiveRecord (popularisé par Ruby On Rails) et il existe déjà plusieurs bibliothèques PHP qui apportent ce pattern aux objets d'une appli. Même si le but est de ne pas les utiliser, on peut quand même s'en inspirer.
Dans le cas présent, ça veut dire que la compétence d'accès à la db peut être héritée d'une classe comme celle-là. Ou alors, si la simplicité est une priorité, il faudrait initialiser l'objet PDO au niveau global (hors de la classe) en tant que singleton (pas d'autre instance permise), puis l'injecter dans le constructeur de l'objet de l'appli. On peut en effet se heurter sans le savoir à un problème de licence qui ne permet qu'un seul accès à la bd, et toujours sans le vouloir, créer deux accès distincts par deux objets différents. C'est le but du singleton, que de s'assurer que tous les accès soient centralisés par un seul connecteur. Une autre piste : En mode développement on peut essayer une requête, qui échoue, le code s'arrête immédiatement sans restituer les ressources systèmes allouées pour le test (des connexions). Il est important de l'enrober dans un try except, et s'assurer que la connexion de db est bien refermée après l'erreur. @+JP Ce message a été modifié par Jaypee - 14 Jul 2019, 14:55. |
|
|
|
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
toluol @hellomorld : hélas, non... It doesn't work. ... 10 Jul 2019, 00:18
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![]() ![]() |
| Nous sommes le : 12th November 2025 - 06:19 |