Mise à jour de mysql timestamp
J'ai une table avec un champ:
'last_modified - timestamp not NULL'
- J'ai défini la valeur par défaut pour le timestamp actuel. Toutefois, cela ne fonctionne que lorsque la mise à jour ou de l'insertion de phpMyAdmin et non pas à partir de mon script.
J'ai essayé
$sql = sprintf("UPDATE %s SET timestamp=now(), %s WHERE id='%s'", $table, $implodeArray, $_POST['id']);
et il ne marche pas encore l'air de fonctionner. Comment puis-je faire le timestamp de mise à jour quand je l'ai mise à jour ou insérer un tableau à partir d'un script?
Aussi heres un échantillon de la sortie des scripts:
Mise à JOUR à propos de SET timestamp=maintenant(), page_header = 'en-tête de Page va ici", sub_header = "Sous l'en-tête se passe ici", content_short = "C'est ici une courte description de la page d'accueil va', contenu = 'Ceci est l'endroit où le contenu complet description' where id='1'
ne pas
donc, supprimer la valeur par défaut et cela devrait fonctionner?
c'est un poste microsoft. pas vraiment la même chose...?
Oui Alex, si vous prévoyez de mettre à jour l'horodatage supprimer manuellement la valeur par défaut.
fait qui n'a pas l'air de travailler
timestamp=now()
dans votre requête si vous avez défini la valeur par défaut de timestamp actuel.donc, supprimer la valeur par défaut et cela devrait fonctionner?
c'est un poste microsoft. pas vraiment la même chose...?
Oui Alex, si vous prévoyez de mettre à jour l'horodatage supprimer manuellement la valeur par défaut.
fait qui n'a pas l'air de travailler
OriginalL'auteur Alex | 2012-07-03
Vous devez vous connecter pour publier un commentaire.
Peut être j'ai mal lu,mais votre nom de colonne est last_modified (tapé timestamp), de sorte que la requête doit être:
OriginalL'auteur Ivan Buttinoni
si vous utilisez un mot réservé que votre table ou columnname alors vous avez besoin de le citer
dans ce cas, vous avez utilisé horodatage comme un columnname de sorte que vous besoin de le citer
De mettre à jour les horodatages automatiquement, vous pouvez compter sur mysql lui-même si vous avez seulement 1 colonne de type timestamp ou vous pouvez ajouter
ON UPDATE CURRENT_TIMESTAMP
lors de la définition de votre colonne timestamp, pour plus d'info voir HORODATAGE d'initialisationMySQL permet
TIMESTAMP
comme un identificateur sans guillemets. Voir dev.mysql.com/doc/refman/5.5/en/reserved-words.html.oui c'est ce que j'ai pensé ainsi
Et s'il vous plaît lire ceci: PHP: Injection SQL
fait la mise à jour current_timestamp... mais comme je l'ai dit il fonctionne, tout simplement, quand je suis en mise à jour de phpmyadmin et pas de mon script
OriginalL'auteur Harald Brinkhof
Si vous voulez mettre à jour l'horodatage à chaque fois que quelque chose se passe à l'enregistrement (c'est à dire de la dernière modification date/heure) alors il est préférable de le laisser en arrière la DB. Vous ne pouvez pas compter sur la valeur par défaut dans le champ de la définition, car il ne fonctionne que sur INSÉRER (lors de l'enregistrement/le champ est créé), l'utilisation
ENSEMBLE last_modified=GETDATE() [ou GETUTCDATE()]
les fonctions réelles peuvent différer selon votre SQL server.
Et "Ivan Buttinoni" est tout à fait correcte et personne, y compris moi, remarqué avant votre nom de champ est mal, mais les commentaires ci-dessus s'appliquent toujours.
OriginalL'auteur Germann Arlington
Si vous avez quelque chose comme un Cadre qui ne permet pas de "now()" ce champ à - champ pour ne PAS NULL et set variable PHP (model->champ) null juste avant de les enregistrer..
OriginalL'auteur Toms Kovkājevs