L'insertion de données avec une requête du type "INSERT INTO Table SET
Champs = $Valeur" est elle possible et le cas échéant conseillée ?
Mon idée étant d'avoir une seule requête pour insérer ou mettre à jour,
suivant les cas, quelque chose du type :
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Clifden
Bonsoir à tous,
L'insertion de données avec une requête du type "INSERT INTO Table SET Champs = $Valeur" est elle possible et le cas échéant conseillée ? Mon idée étant d'avoir une seule requête pour insérer ou mettre à jour, suivant les cas, quelque chose du type :
A ma connaissance la syntaxe du INSERT n'est pas celle là. Par contre, tu peux faire quelque chose du type
function insert($table,$tab) { $fields=array_keys($tab); $values=array_values($tab); // ensuite construire la requete $sql avec $table,$fields,$values ... }
function update($table,$tab,$where) { $fields=array_keys($tab); $values=array_values($tab); // ensuite construire la requete $sql avec $table,$fields,$values, $where ...
}
tu as ensuite ton bout de code à toi qui appelle l'une ou l'autre des fonctions: $champs=array(); for ($i=0;$i<count($champsNoms);$i++) $champs[$champsNoms[$i]]=$ChampsValeurs[$i]; if(isset($ID))
C'est un petit peu long car je suis parti de ta situation à toi: tableaux champsNom et champsValeur. Mais tu as peut-être interet à obtenir directement un tableau associatif contenant clés et valeurs.
Bonsoir à tous,
L'insertion de données avec une requête du type "INSERT INTO Table SET
Champs = $Valeur" est elle possible et le cas échéant conseillée ?
Mon idée étant d'avoir une seule requête pour insérer ou mettre à jour,
suivant les cas, quelque chose du type :
A ma connaissance la syntaxe du INSERT n'est pas celle là. Par contre,
tu peux faire quelque chose du type
function insert($table,$tab) {
$fields=array_keys($tab);
$values=array_values($tab);
// ensuite construire la requete $sql avec $table,$fields,$values
...
}
function update($table,$tab,$where) {
$fields=array_keys($tab);
$values=array_values($tab);
// ensuite construire la requete $sql avec $table,$fields,$values, $where
...
}
tu as ensuite ton bout de code à toi qui appelle l'une ou l'autre des
fonctions:
$champs=array();
for ($i=0;$i<count($champsNoms);$i++)
$champs[$champsNoms[$i]]=$ChampsValeurs[$i];
if(isset($ID))
C'est un petit peu long car je suis parti de ta situation à toi:
tableaux champsNom et champsValeur. Mais tu as peut-être interet à
obtenir directement un tableau associatif contenant clés et valeurs.
L'insertion de données avec une requête du type "INSERT INTO Table SET Champs = $Valeur" est elle possible et le cas échéant conseillée ? Mon idée étant d'avoir une seule requête pour insérer ou mettre à jour, suivant les cas, quelque chose du type :
A ma connaissance la syntaxe du INSERT n'est pas celle là. Par contre, tu peux faire quelque chose du type
function insert($table,$tab) { $fields=array_keys($tab); $values=array_values($tab); // ensuite construire la requete $sql avec $table,$fields,$values ... }
function update($table,$tab,$where) { $fields=array_keys($tab); $values=array_values($tab); // ensuite construire la requete $sql avec $table,$fields,$values, $where ...
}
tu as ensuite ton bout de code à toi qui appelle l'une ou l'autre des fonctions: $champs=array(); for ($i=0;$i<count($champsNoms);$i++) $champs[$champsNoms[$i]]=$ChampsValeurs[$i]; if(isset($ID))
C'est un petit peu long car je suis parti de ta situation à toi: tableaux champsNom et champsValeur. Mais tu as peut-être interet à obtenir directement un tableau associatif contenant clés et valeurs.
Sebastien Bourgasser
- = Cyriloch = - wrote:
Bonsoir à tous,
L'insertion de données avec une requête du type "INSERT INTO Table SET Champs = $Valeur" est elle possible et le cas échéant conseillée ?
Bonjour,
Peut-être devriez vous éviter INSERT et UPDATE et plutôt utiliser REPLACE qui fera l'update ou l'insert en fonction de vos paramètres (avec MySQL, vous n'avez pas précisé quel type de DB vous utilisez) ? Il vous faut au moins un champ indéxé (je pense que votre champ ID doit l'être)
A+
-- Séb
- = Cyriloch = - wrote:
Bonsoir à tous,
L'insertion de données avec une requête du type "INSERT INTO Table SET
Champs = $Valeur" est elle possible et le cas échéant conseillée ?
Bonjour,
Peut-être devriez vous éviter INSERT et UPDATE et plutôt utiliser
REPLACE qui fera l'update ou l'insert en fonction de vos paramètres
(avec MySQL, vous n'avez pas précisé quel type de DB vous utilisez) ? Il
vous faut au moins un champ indéxé (je pense que votre champ ID doit l'être)
L'insertion de données avec une requête du type "INSERT INTO Table SET Champs = $Valeur" est elle possible et le cas échéant conseillée ?
Bonjour,
Peut-être devriez vous éviter INSERT et UPDATE et plutôt utiliser REPLACE qui fera l'update ou l'insert en fonction de vos paramètres (avec MySQL, vous n'avez pas précisé quel type de DB vous utilisez) ? Il vous faut au moins un champ indéxé (je pense que votre champ ID doit l'être)
A+
-- Séb
Antoun
Clifden wrote:
Bonsoir à tous,
L'insertion de données avec une requête du type "INSERT INTO Table SET Champs = $Valeur" est elle possible et le cas échéant conseillée ? Mon idée étant d'avoir une seule requête pour insérer ou mettre à jour, suivant les cas, quelque chose du type :
A ma connaissance la syntaxe du INSERT n'est pas celle là.
Si, cette syntaxe est une extension de MySQL à la syntaxe classique de INSERT. Le but est très exactement ce pour quoi Clifden l'utilise, à savoir garder la même requête en faisant varier l'instruction entre UPDATE et INSERT INTO.
Clifden, tu peux y aller, tant que tu te souviens que cela ne marche qu'avec MySQL.
Antoun
Clifden wrote:
Bonsoir à tous,
L'insertion de données avec une requête du type "INSERT INTO Table SET
Champs = $Valeur" est elle possible et le cas échéant conseillée ?
Mon idée étant d'avoir une seule requête pour insérer ou mettre à
jour, suivant les cas, quelque chose du type :
A ma connaissance la syntaxe du INSERT n'est pas celle là.
Si, cette syntaxe est une extension de MySQL à la syntaxe classique de
INSERT. Le but est très exactement ce pour quoi Clifden l'utilise, à
savoir garder la même requête en faisant varier l'instruction entre
UPDATE et INSERT INTO.
Clifden, tu peux y aller, tant que tu te souviens que cela ne marche
qu'avec MySQL.
L'insertion de données avec une requête du type "INSERT INTO Table SET Champs = $Valeur" est elle possible et le cas échéant conseillée ? Mon idée étant d'avoir une seule requête pour insérer ou mettre à jour, suivant les cas, quelque chose du type :
A ma connaissance la syntaxe du INSERT n'est pas celle là.
Si, cette syntaxe est une extension de MySQL à la syntaxe classique de INSERT. Le but est très exactement ce pour quoi Clifden l'utilise, à savoir garder la même requête en faisant varier l'instruction entre UPDATE et INSERT INTO.
Clifden, tu peux y aller, tant que tu te souviens que cela ne marche qu'avec MySQL.
Antoun
Antoun
Peut-être devriez vous éviter INSERT et UPDATE et plutôt utiliser REPLACE qui fera l'update ou l'insert en fonction de vos paramètres (avec MySQL, vous n'avez pas précisé quel type de DB vous utilisez) ? Il vous faut au moins un champ indéxé (je pense que votre champ ID doit l'être)
L'inconvénient du REPLACE est que ce n'est pas un UPDATE, mais un DELETE suivi d'un INSERT. Autrement dit, les valeurs de toutes les colonnes non précisées dans le REPLACE sont effacées.
Peut-être devriez vous éviter INSERT et UPDATE et plutôt utiliser
REPLACE qui fera l'update ou l'insert en fonction de vos paramètres
(avec MySQL, vous n'avez pas précisé quel type de DB vous utilisez) ? Il
vous faut au moins un champ indéxé (je pense que votre champ ID doit
l'être)
L'inconvénient du REPLACE est que ce n'est pas un UPDATE, mais un DELETE
suivi d'un INSERT. Autrement dit, les valeurs de toutes les colonnes non
précisées dans le REPLACE sont effacées.
Peut-être devriez vous éviter INSERT et UPDATE et plutôt utiliser REPLACE qui fera l'update ou l'insert en fonction de vos paramètres (avec MySQL, vous n'avez pas précisé quel type de DB vous utilisez) ? Il vous faut au moins un champ indéxé (je pense que votre champ ID doit l'être)
L'inconvénient du REPLACE est que ce n'est pas un UPDATE, mais un DELETE suivi d'un INSERT. Autrement dit, les valeurs de toutes les colonnes non précisées dans le REPLACE sont effacées.