2017-02-17 5 views
-1

Ich habe ein Einfügeformular, und 2 der Werte sind Typnummern, und 1 ist Typ Datum. Da sie nicht benötigt werden und leer gelassen werden und der qry ausgeführt wird, lautet der zurückgegebene Fehler "Falscher ganzzahliger Wert: '' für die Spalte 'Stücke' in Zeile 1" & Dies wird für das Gewicht & Ankunft auftreten, wenn der vorherige einen Wert hat .PHP - Wenn der Wert Null ist, auf Standard setzen & einfügen

Also um das Problem zu beheben, indem Sie finden, ist der Wert ist Null, und setzen Sie es auf DEFAULT (da dies würde den Wert als Null auf der db als default = null einfügen), versuchte ich den folgenden Code, aber der Fehler (Falscher Integer-Wert: 'DEFAULT' für die Spalte 'Pieces' in Zeile 1) kommt heraus, und ich nehme an, dass das '' interferiert, da dieser Code 'DEFAULT' einfügen würde, wenn es DEFAULT sein sollte. Also, wie könnte ich den Code ändern, um die '' zu entfernen.

+0

PHP Version hier verwendet? – JustOnUnderMillions

+0

Was ist Ihre Tabellenstruktur? Stellen Sie sicher, dass die Spalten, die Sie leer lassen möchten, nicht als "NOT NULL" deklariert sind. – Andy

+0

Sie möchten, dass 'DEFAULT' verwendet wird, wenn der Wert null ist, richtig? Sollte der Code nicht 'if (is_null ($ var))' 'anstelle von 'if (! Is_null ($ var))' 'sein? Außerdem müssen Sie DEFUALT unbedingt in Anführungszeichen setzen, sonst weiß PHP nicht, dass es sich um eine Zeichenfolge handelt. – MattCorr

Antwort

-1

Wenn Sie einen Variablenwert für eine beliebige Zeichenfolge festlegen möchten, wenn diese leer ist, überprüfen Sie mithilfe der Funktion empty(), ob die angegebene Variable leer ist. Und wenn dies der Fall ist, weisen Sie den Standardwert zu.

Zum Beispiel, statt all dieser if s verwenden Sie einen ternären Operator (der kürzer und IMO besser lesbar ist) und verwenden Sie dies in Zeilen, wo Zuordnung passiert.

$pcs = !empty($_POST['Pieces']) ? $_POST['Pieces'] : 'DEFAULT'; 
+0

Ausgabe von mit Ihrem vorgeschlagenen Code: Falscher Integer-Wert: 'DEFAULT' für Spalte 'Stück' in Zeile 1 .requ DEFAULT nur übergeben werden, aber offensichtlich kann es nicht mit der '' in-Anweisung oder nicht in der Lage, Anfrage – sanitizer

+0

@ CS88 zu behandeln, dann ersetzen Sie einfach die 'DEFAULT'-Literal mit einem anderen Wert, der zugewiesen wird, wenn Teile leer sind . – Albert221

-1

Sie auch null und leere Werte, indem Sie bestätigen können:

if(is_null($pcs) || $pcs == '') //do your thing; 
+0

weiterhin falscher int-Wert: '' für Spalte 'Pieces' in Zeile 1 – sanitizer

Verwandte Themen