2017-10-25 1 views
0

Ich verbringe zu viele Stunden versuchen, Null-Wert auf Null column in der Datenbank übergeben und die ganze Lösung, die ich google es funktioniert nicht für meinen Code gibt es mir dieser Fehler:Wie Null-Wert an die Datenbank Mysql mit Datum geben Typ aus PHP

SQLSTATE [22007]: Ungültige Datetime-Format: 1292 Falscher Datumswert: '' für die Spalte 'DateOfImplementation' in Zeile 2

hier ist die Abfrage, die die Tabelle aktualisieren:

hier ist der Beitrag für Einsatz der Termine:

<?php 

if (isset($_POST["applicationid"])) { 
    $applicationid = $helperObj->prepar_data($_POST["applicationid"]); 
} 

if(! is_null($_POST["FinanceDeliveryDate"])) { 
    $FinanceDeliveryDate = $helperObj->prepar_data($_POST["FinanceDeliveryDate"]); 
} else { 
    $FinanceDeliveryDate = 'NULL'; 
} 

if(! is_null($_POST["FinanceReceiptDate"])) { 
    $FinanceReceiptDate = $helperObj->prepar_data($_POST["FinanceReceiptDate"]); 

} else { 
    $FinanceReceiptDateFil= 'NULL'; 
} 

if(! is_null($_POST["DueDate"])) { 
    $DateOfFirstInstallment = $helperObj->prepar_data($_POST["DueDate"]); 
} else { 
    $DateOfFirstInstallment ='NULL'; 
} 
if(! is_null($_POST["DateOfImplementation"])) { 
    $DateOfImplementation = $helperObj->prepar_data($_POST["DateOfImplementation"]); 
} else { 
    $DateOfImplementation = 'NULL'; 
} 
$status = $appstudyobj->updateDates($applicationid , $DateOfImplementation , $DateOfFirstInstallment ,$FinanceDeliveryDate ,$FinanceReceiptDate); 
?> 

Wie kann ich null Wert lege es funktionieren, wenn es keine einfachen Anführungszeichen in der Funktion ist aber nimmt nicht den Wert korrekt, wenn es ein Datum ist

+0

Wenn Ihre Spalten standardmäßig auf null gesetzt sind, überspringen Sie sie einfach in der insert-Anweisung –

+0

Wenn Sie das Feld als Datumsfeld in mysql definiert haben, können Sie nur Datum (String) aus PHP angeben. Es funktioniert mit einfachen Anführungszeichen '' ''NULLL'''', weil dies ein' '' (String) Null''' ist. –

+0

Ich kann sie nicht im Einfügen übergehen, weil er meine Daten in zu vielen Daten übergibt, also habe ich um sie in der gleichen Aussage zu verlassen @LelioFaieta –

Antwort

0

pHP konvertiert nicht null in NULL

Um dies zu beheben, überprüfen Sie für Nullwerte, bevor Sie die Abfrage tun.

Verwenden Sie "NULL" anstelle von null.

+0

Ich versuche schon diese Lösung, aber es hat nicht funktioniert –

0

Sie sollten prepared statements verwenden, um Nullwerte Eg einzufügen.

//Testing 
$DateOfImplementation = null; 
$FinanceDeliveryDate = null; 

$stmt = $dbhc-> prepare("UPDATE `applicationstudy` SET 
     `DateOfImplementation` = ?, 
     `DueDate` = ?, 
     `FinanceDeliveryDate` = ?, 
     `FinanceReceiptDate` = ? 
     WHERE `ApplicationID` = ?") 
$stmt->bind_param('sssss', $DateOfImplementation, $DueDate, $FinanceDeliveryDate, $FinanceReceiptDate, $ApplicationID) 

$stmt->execute() 

Geworben von PHP/MySQL Insert null values & PHP UPDATE prepared statement

+0

Ich hoffe, das funktioniert .. – Simpy

+0

es gibt mir den gleichen Fehler :( –

+0

Siehe: https://StackOverflow.com/questions/17784390/mysql-how-to-insert -null-dates Ich denke, mit vorbereiteten Anweisungen 'NULL' Einfügen würde funktionieren. – Simpy

0
$sql = "UPDATE `applicationstudy` SET 
     `DateOfImplementation` = '$DateOfImplementation', 
     `DueDate` = '$DueDate', 
     `FinanceDeliveryDate` = '$FinanceDeliveryDate', 
     `FinanceReceiptDate` = '$FinanceReceiptDate' 
     WHERE `ApplicationID` = '$ApplicationID' ;"; 

Sie einen Typ hier gemacht ';' sollte nicht nach '$ ApplicationID' sein.

Und Sie sollten NULL unter Zitate nicht übergeben. Versuchen Sie ohne Zitate, d. H. NULL statt "NULL". Hoffe das hilft !!

Verwandte Themen