Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP][MySQL] zapis jutrzejszej daty do mysql

Napisany przez: neurogen 20.06.2018, 21:22:28

chciałbym zamienić pole "date" w tabeli na jutrzejszą datę w formacie rrrr-mm-dd. echo prawidłowo wyświetla mi datę czyli 2018-06-21, zapytanie jest realizowane ale zmiany w bazie nie ma, nie ma też żadnego błędu. jest jakiś problem że to string czy coś takiego? jak to poprawić?

  1.  
  2. $date_format = 'Y-m-d';
  3. $today = http://www.php.net/strtotime('now');
  4. $tomorrow = http://www.php.net/strtotime('+1 day', $today);





  1. $sqlsave = "UPDATE tasks SET date=$tomorrow WHERE id=$id";




próbowałem też tak:
  1. $datetime = new DateTime('2013-01-22');
  2. $datetime->modify('+1 day');
  3. http://www.php.net/echo $datetime->format('Y-m-d H:i:s');

Napisany przez: trueblue 20.06.2018, 21:26:43

Wyświetl treść zapytania z podstawioną datą i wykonaj je bezpośrednio na bazie danych (np. poprzez PHPMyAdmin).
Od razu olśni Cię gdzie jest błąd.

Gdybyś używał bindowania przy zapytaniach, miałbyś mniej takich problemów.

Napisany przez: neurogen 20.06.2018, 21:36:38

binduję w phpmyadmin tak:

  1. UPDATE tasks SET date=:tomorrow WHERE id=:id



w formularzu podaję:
tomorrow=2018-06-21
id=52


wyskakuje tylko błąd:
#1064 - Something is wrong in your syntax obok ':id AND (date <> smile.gif' w linii 1

Napisany przez: trueblue 20.06.2018, 21:53:09

Wyświetl zawartość zmiennej $sqlsave i przeklej ją do PHPMyAdmin.

Napisany przez: neurogen 20.06.2018, 21:58:53

wszystko jasne, brakowało ' '
dzięki

Napisany przez: trueblue 20.06.2018, 22:03:12

Jeśli to pole daty, to wystarczy:

  1. UPDATE tasks SET date=CURDATE()+1 WHERE id=...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)