Bonjour,
Je cherche à condenser l'écriture de multiples requêtes SQL UPDATE en PHP.
Exemple :
J'ai un formulaire avec plusieurs champs : reference, texte, date
Actuellement, j'ai les fichiers PHP qui mettent chacun des champs, dans une application frontend (soit updateReference.php, updateTexte.php et updateDate.php)
L'idée est qu'on ait ces trois fichiers dans un seul, et plus précisément sous la forme d'une seule fonction et du côté d'une API.
Premièrement, le code au-dessus ne fonctionne pas. J'ai aussi testé avec un switch mais cela ne fonctionne pas. Pour un seul champ, bien sûr ça fonctionne, mais ça se complique après quand il y en a plusieurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 private $conn; function update(){ $query .= " UPDATE schema.table SET"; if (isset($_REQUEST['reference']) && ($_REQUEST['reference'] != null)) $query .= "reference = :reference,"; if (isset($_REQUEST['texte']) && ($_REQUEST['texte'] != null)) $query .= "texte = :texte,"; $query .= " modification=now(), maj_utilisateur = :utilisateur WHERE id=:id"; } $stmt = $this->conn->prepare($query); $stmt->bindParam('id', $this->id, PDO::PARAM_INT); $stmt->bindParam('utilisateur', $this->utilisateur, PDO::PARAM_STR); $stmt->bindParam('reference', $this->reference, PDO::PARAM_STR); $stmt->bindParam('texte', $this->texte, PDO::PARAM_STR); $this->utilisateur = $_REQUEST['utilisateur']; $this->id = $_REQUEST['id']; $this->reference = $_REQUEST['reference']; $this->texte = $_REQUEST['texte']
Dans la requête d'API, j'aimerais qu'on ait pour mettre à jour uniquement le champ texte :
"https://api.monapi.fr/api_test/update?id=58&texte=Mon super texte&utilisateur=sylvain"
et pour le champ reference :
"https://api.monapi.fr/api_test/update?id=58&reference=REF25&utilisateur=sylvain"
Comment je peux adapter mon code pour que l'on ait plus qu'une seule fonction, une seule requête condensée ?
Merci pour vos retours
Sylvain
Partager