Piszę zapytanie w php za pomocą ciągu wysłanego z aplikacji java na Androida.
Zapytanie wygląda mniej więcej tak:
$insertSQL = sprintf("INSERT INTO app_DuckTag (taste) VALUES (%s) WHERE species=%s AND timestamp=%s",
GetSQLValueString($_POST['taste'], "text"),
GetSQLValueString($_POST['species'], "text"),
GetSQLValueString($_POST['timestamp'], "text"));
Ale wątpię, aby znacznik czasu był przechowywany jako ciąg znaków w MySQL.
Jak przekonwertować ciąg do formatu czasu, jak w MySQL?
Funkcja php strtotime(string) konwertuje go na czas uniksowy.
Ale MySQL przechowuje to inaczej, jak sądzę. Dziękuję Ci.
EDYCJA: Tak to wygląda w MySQL phpmyadmin: 2011-08-16 17:10:45
EDYCJA: Moje zapytanie jest jednak błędne. Cannon używa klauzuli WHERE z opcją Wstaw do.
Zapytanie musi być UPDATE .... SET ... = ... WHERE ....
Ale przyjęta odpowiedź jest poprawnym sposobem użycia czasu w klauzuli WHERE.
3 odpowiedzi
To powinno być wszystko:
date("Y-m-d H:i:s", strtotime($_POST['timestamp']));
Jeśli chcesz sprawdzić strefy czasowe i takie, powinieneś użyć strftime zamiast daty
Jeśli możesz uzyskać wejściowy „ciąg” (w którym nie podałeś formatu, w którym go otrzymujesz) do wartości znacznika czasu uniksowego, możesz łatwo przekonwertować go na format daty i godziny MySQL w następujący sposób:
$mysqldatetime = date("Y-m-d H:i:s", $unixTimeStampValue);
Spowoduje to utworzenie ciągu podobnego do następującego:
2011-08-18 16:31:32
Jest to format formatu datagodzina MySQL. Jeśli używasz innego formatu czasu, pierwszy argument funkcji date
będzie inny.
Zobacz podręcznik funkcji data, aby uzyskać więcej informacji i inne sposoby formatowania wartość, którą zwraca.
Edytuj
Otrzymujesz ciąg znaków sformatowany w formacie daty i godziny MySQL. Po oczyszczeniu można go wstawić bezpośrednio do bazy danych. Dla MySQL może to być typ danych 'datetime', ale dla PHP jest to po prostu ciąg znaków (tak jak całe zapytanie SQL jest niczym więcej niż ciągiem znaków dla PHP).
$timestamp = mysql_real_escape_string($_POST['timestamp']);
Powinieneś być w stanie bezpiecznie wstawić to do swojej bazy danych dla pola sygnatury czasowej.
Istnieje funkcja FROM_UNIXTIME a> w mysql. Dlaczego nie chcesz go użyć?
Podobne pytania
Nowe pytania
php
PHP to szeroko stosowany, wysokopoziomowy, dynamiczny, zorientowany obiektowo i interpretowany język skryptowy przeznaczony głównie do tworzenia stron WWW po stronie serwera. Używane w przypadku pytań dotyczących języka PHP.