PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   SQL / Datenbanken (https://www.php-resource.de/forum/sql-datenbanken/)
-   -   Tabellen UPDATE heutiges Datum plus 1 Jahr (https://www.php-resource.de/forum/sql-datenbanken/105965-tabellen-update-heutiges-datum-plus-1-jahr.html)

BDC 19-04-2017 11:28

Tabellen UPDATE heutiges Datum plus 1 Jahr
 
Hallo Zusammen,

ich möchte in einer Tabelle ein Datum durch das heutige + 1 Jahr ersetzen.

mit diesem Syntax will mir das aber nicht gelingen.
Ich bekomme aber auch keinen Fehler.

PHP-Code:

$pdo = new PDO("mysql:host=localhost;dbname=XXX"'root''XXX'); 
$pdo->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
 
$sql $pdo->prepare("UPDATE wartungen SET wartungen_naechste_wartung = DATE(NOW()) + INTERVAL 1 YEAR; WHERE wartungen_id = '$id'");
$sql->execute(); 


h3ll 19-04-2017 12:05

Was hat das Semikolon nach YEAR verloren?

BDC 19-04-2017 13:58

das habe ich bereits entfernt.
Jedoch ist das nicht die Lösung.

h3ll 19-04-2017 14:04

Dann bitte ein vollständiges Beispiel inkl. Tabellenstruktur und Testdaten als SQL-Code posten.

Davon abgesehen bei Datenbankproblemen erstmal PHP weg lassen, das ist hier irrelevant und erschwert nur die Fehlersuche.

BDC 19-04-2017 14:25

Datenbank-Struktur
Code:

'wartungen', 'CREATE TABLE `wartungen` (
  `wartungen_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `wartungen_angebot_nr` varchar(45) DEFAULT NULL,
  `wartungen_objekt` varchar(45) DEFAULT NULL,
  `wartungen_postleitzahl` varchar(45) DEFAULT NULL,
  `wartungen_ort` varchar(45) DEFAULT NULL,
  `wartungen_strasse` varchar(45) DEFAULT NULL,
  `wartungen_angebot_vom` varchar(45) DEFAULT NULL,
  `wartungen_projekt_nr` varchar(45) DEFAULT NULL,
  `wartungen_aktiv` varchar(45) DEFAULT '0',
  `wartungen_angeschrieben_am` varchar(45) DEFAULT NULL,
  `wartungen_summe` decimal(10,2) DEFAULT NULL,
  `wartungen_ap_name` varchar(45) DEFAULT NULL,
  `wartungen_ap_telefon` varchar(45) DEFAULT NULL,
  `wartungen_ap_email` varchar(45) DEFAULT NULL,
  `wartungen_geplanter_termin` varchar(45) DEFAULT NULL,
  `wartungen_gekuendigt_zum` date DEFAULT NULL,
  `wartungen_letzte_Wartung` date DEFAULT NULL,
  `wartungen_naechste_Wartung` date DEFAULT NULL,
  `wartungen_erstelltvon` varchar(45) NOT NULL,
  `wartungen_erstelltam` varchar(45) NOT NULL,
  `wartungen_lat` float DEFAULT NULL,
  `wartungen_lng` float DEFAULT NULL,
  `wartungen_status` varchar(45) DEFAULT '0',
  `wartungen_mail` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`wartungen_id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=latin1'


und wie poste ich die Testdaten ?

h3ll 19-04-2017 14:37

Zitat:

Zitat von BDC (Beitrag 673833)
und wie poste ich die Testdaten ?

Ebenfalls als SQL-Code.

BDC 19-04-2017 14:50

führe ich es in SQL aus, geht es :

Code:

UPDATE wartungen SET wartungen_naechste_wartung = ADDDATE(wartungen_naechste_Wartung,INTERVAL 1 YEAR) WHERE wartungen_id = 8;
Die unten stehende Ausführung in PHP macht aber nichts:

PHP-Code:

$sql $pdo->prepare("UPDATE `wartungen` SET `wartungen_naechste_wartung` = ADDDATE(`wartungen_naechste_Wartung`,INTERVAL 1 YEAR) WHERE `wartungen_id` = '$id' ");
$sql->execute(); 

Woran kann das liegen ?

h3ll 19-04-2017 15:01

$id ist hier unbekannt, also schon mal verdächtig.

Davon abgesehen verwendest du prepare() falsch. Variablen sollten nicht direkt in SQL-Abfragen eingefügt werden. Näheres dazu steht im PHP-Handbuch.

BDC 19-04-2017 15:02

ich habe es:

Code:

$sql = $pdo->prepare("UPDATE `wartungen` SET `wartungen_naechste_Wartung` = ADDDATE(wartungen_naechste_Wartung,INTERVAL 1 YEAR) WHERE `wartungen_id` = '$id' ");
Vielen Dank !


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:51 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG