2010-11-17 7 views
0

Comment ça ne marche pas? S'il vous plaît aider !!!Comment mettre à jour un champ datetime avec PHP MySQL?

$query = "UPDATE User SET updated_date = NOW() WHERE pk_item = '$id'"; 
mysqli_query($this->link,$query); 
if(mysqli_errno($this->link)) 
    return -1; 
return 1; 

Merci

+1

S'il vous plaît lire sur [injection SQL] (http://en.wikipedia.org/wiki/SQL_injection) et [comment empêcher] (http://php.net/manual/fr/security.database.sql-injection.php). Votre requête est vulnérable! –

+0

Quelle est la sortie de mysql_error()? Et quel type de données est votre champ "updated_date" dans la base de données? –

Répondre

0

Si $id est un champ numérique, vous ne devriez pas l'entourer de guillemets. Il suffit de dire:

pk_item = $id 

Si ce n'est pas le cas, alors quel message d'erreur obtenez-vous?

+0

Je ne reçois aucun message d'erreur. Il ne met tout simplement pas à jour. Si j'imprime la requête $, elle indique "UPDATE User SET update_date = NOW() WHERE pk_item = '1'" qui fonctionne bien si je le tape sur le shell client mysql. Le PHP ne semble pas fonctionner ... – Ricardo

+0

Avez-vous essayé d'autres requêtes avec le même code? Si aucune requête ne fonctionne, le problème se situe quelque part dans le code PHP. – JJJ

0

Vous pouvez utiliser la fonction date à partir de php date ("Y-m-d H: i: s") ou quelque chose comme ça. n'oubliez pas de le mettre entre guillemets simples.

0

Vous pouvez écrire une requête

$query = 'UPDATE User 
      SET updated_date = NOW(), 
      DOB = STR_TO_DATE("'.$DOB.'","%d-%m-%Y"), 
      WHERE pk_item ='.$id; 

Le spectacle au-dessus de deux mise à jour colonne du champ datetime Date de mise à jour -> save current datetime 2.DOB -> enregistrer la date date de naissance et heure

Remarque: Toujours écrire une requête en guillemets simples la chaîne entre guillemets est l'analyse de la chaîne.

Pour date heure s'il vous plaît ref le link

Questions connexes