2014-09-06 5 views
0

Je rencontre un problème avec mon code qui ne met pas à jour les données d'un ordinateur existant. Si je supprime la section ON Duplicate, le code fonctionne correctement et ajoute les données. J'ai fait de l'ordinateur ma clé unique dans ma base de données xampp. toute aide serait grandement appréciée.SUR LA MISE À JOUR DE LA CLÉ DUPLICATE - Ne pas mettre à jour

<?php 

$receive = htmlspecialchars($_POST['time']); 
list($length, $status, $computer) = split(":", $receive, 3);  
include('connection.php'); 


mysqli_query($dbc, "INSERT INTO screen(computer,status,length) 
VALUES('$computer','$status','$length') 
ON DUPLICATE KEY UPDATE 
status=$status, length=$length"); 

?> 
+2

Vous avez oublié de qoute vos valeurs de mise à jour -> 'état UPDATE = '$ status', '= longueur length'' – Sean

+0

$ Sean - Vous êtes mon héros. Merci pour le correctif – MIchaelfjsmith2

Répondre

0

Un meilleur modèle pour créer une instruction SQL qui atténue certaines vulnérabilités courantes d'injection SQL. Notez également que la fonction spéciale VALUES() peut être utilisée pour référencer les valeurs qui auraient été insérées pour une colonne, si l'insertion avait réussi.

$sql = "INSERT INTO screen(computer,status,length) 
VALUES('" 
. mysqli_real_escape_string($dbc,$computer) 
. "','" 
. mysqli_real_escape_string($dbc,$status) 
. "','" 
. mysqli_real_escape_string($dbc,$length) 
. "') 
ON DUPLICATE KEY UPDATE 
status=VALUES(status), length=VALUES(length)"; 

mysqli_query($dbc,$sql); 
Questions connexes