J'essaie de faire en sorte qu'une requête de mise à jour fonctionne à l'aide de l'attribut name des zones de sélection d'un formulaire. Tout est transmis à $ _POST et la requête INSERT fonctionne correctement, mais je n'arrive pas à comprendre pourquoi la partie update de mon instruction if ne passe pas dans ma base de données. Tout conseil est fort apprécié.Mettre à jour la requête à l'aide de l'attribut Sélectionner un nom
<?php
global $wpdb;
$Call_Number = $_POST['Call_Number'];
$datas = $_POST['REG'];
$columns = implode(",",array_keys($datas));
$values = implode("','",$datas);
$result = $wpdb->get_results ("SELECT Call_Number FROM DG_Pro_Coach WHERE Call_Number = '".$Call_Number."'");
if (count ($result) > 0) {
$row = current ($result);
$wpdb->query ("UPDATE DG_Pro_Coach SET ".$columns."='".$values."' WHERE Call_Number = '".$Call_Number."'");
} else {
$wpdb->query("INSERT INTO DG_Pro_Coach (".$columns.",Call_Number) VALUES ('".$values."','$Call_Number')");
}
?>
Rien à voir avec la question, mais néanmoins important: S'il vous plaît [paramétrez vos requêtes] (https://stackoverflow.com/questions/332365/how-does-the-sql-injection-from-the-bobby- tables-xkcd-comic-travail)! – waka
votre syntaxe clause de mise à jour est faux, il devrait être comme ça UPDATE t1 SET col1 = val1, col2 = val2 où les conditions, vôtre est UPDATE t1 SET col1, col2 = val1, vla2 où la condition –