Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
INT NULL - Null wird übergeben. "0" entsteht [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
INT NULL - Null wird übergeben. "0" entsteht


 
phpMorpheus2
05-04-2009, 17:57 
 
Hi,
ich übergebe der db mit einem UPDATE den Wert NULL.
Jedoch wird in die DB, also dem Eintrag, immer "0" eingetragen.
Warum?

http://img3.imageshack.us/img3/3875/notnull.th.jpg (http://img3.imageshack.us/my.php?image=notnull.jpg)

 
Abraxax
05-04-2009, 18:02 
 
WIE übergibst du NULL?

 
TobiaZ
05-04-2009, 18:07 
 
Lass und doch nicht immer Raten! Welche Query verwendest du???

 
phpMorpheus2
05-04-2009, 18:18 
 
Sry :p

//$id ist NULL (Habe es mit einer IF Abfrage nochmals zur Sicherheit
// abgefragt.

$mysql_query_update = mysql_query('UPDATE db
SET '.$setting.' = "'.$id.'"

 
wahsaga
05-04-2009, 18:21 
 
Na siehste - "NULL" ist ein Textstring, bestehend aus den Buchstaben N, U, L und noch mal L.
Da der sich nicht als Zahlwert interpretieren lässt, wird diese ungültige Angabe in 0 umgewandelt.

"NULL" ist nicht NULL.

 
TobiaZ
05-04-2009, 18:25 
 
BTW: Warum kannst du immer noch nicht zwischen PHP-Code und einer SQL-Query unterscheiden?

 
phpMorpheus2
05-04-2009, 18:26 
 
Original geschrieben von wahsaga
Na siehste - "NULL" ist ein Textstring, bestehend aus den Buchstaben N, U, L und noch mal L.
Da der sich nicht als Zahlwert interpretieren lässt, wird diese ungültige Angabe in 0 umgewandelt.

"NULL" ist nicht NULL.

Ja das ist mir eben auch aufgefallen als ich gepostet habe.
Da ich die Funktion zum Updaten bei mehrern anderen Funktionen nutze, und alles einwandfrei funktioniert bin ich garnicht darauf gekommen, das etwas an der query liegen könnte dabei hab ich sie ja eben noch gepostet.

"Brett vorm Kopf wegnehm".
:D

-closed

PS: Hau mich mal einer...

 
TobiaZ
05-04-2009, 18:29 
 
gerne!


:box:

 
phpMorpheus2
05-04-2009, 18:33 
 
Original geschrieben von TobiaZ
gerne!


:box:

:{ autsch

Ich könnte doch einfach eine Abfrage einbauen oder?
SET '.$setting.' = IF('.$id.' IS NULL, NULL, "'.$id.'")

 
TobiaZ
05-04-2009, 18:45 
 
Klar könntest du das. Nur ist das totaler Schwachsinn und streng genommen falsch, weil Integer natürlich auch keine Strings sind! :teach:

 
phpMorpheus2
05-04-2009, 18:46 
 
Original geschrieben von TobiaZ
Klar könntest du das. Nur ist das totaler Schwachsinn und streng genommen falsch, weil Integer natürlich auch keine Strings sind! :teach:

Jedoch ist NULL ja kein String.
Also auch im Intergerbereich möglich.
Oder etwa nicht? Ich denke schon...

EDIT:
Aha, es ist zwar möglich in die DB als INTEGER "NULL" einzutragen.
Jedoch nicht über UPDATE SET ...
Wenn ich damit richtig liege, finde ich es merkwürdig.
Werde aber mal weiterforschen

 
TobiaZ
05-04-2009, 18:50 
 
Jedoch ist NULL ja kein String.Glückwunsch, das hast du vor knapp ner halben Stunde gelernt und bis jetzt behalten. Aber was willst du uns damit sagen?

Also auch im Intergerbereich möglich. Das ist kein Satz und hat auch keine Aussage.

Oder etwa nicht? Ich denke schon... Wenn du letzteres in der Formulierung deiner Antwort zum Ausdruck bringen könntest, wäre das toll.

 
phpMorpheus2
05-04-2009, 18:59 
 
Original geschrieben von TobiaZ
Glückwunsch, das hast du vor knapp ner halben Stunde gelernt und bis jetzt behalten. Aber was willst du uns damit sagen?

Das ist kein Satz und hat auch keine Aussage.

Wenn du letzteres in der Formulierung deiner Antwort zum Ausdruck bringen könntest, wäre das toll.

Es waren meine Gedankengänge zu deinem Beitrag.
Dachte du kommst da mit.

Es liegt wohl einer an meiner Query die nicht funktioniert NULL in die DB zu schreiben.
An der IF abfrage hinter dem SET.
Mal gucken.

 
TobiaZ
05-04-2009, 19:01 
 
Falls du es immer noch nicht verstanden hast, die Abfrage ist fehl am Platz! Aber sowas von!

 
TobiaZ
05-04-2009, 19:03 
 
Aha, es ist zwar möglich in die DB als INTEGER "NULL" einzutragen.
Jedoch nicht über UPDATE SET ... Wieso sollte man es (vermutlich über INSERT?) eintragen können, aber nicht über UPDATE???

 
phpMorpheus2
05-04-2009, 19:06 
 
UPDATE db SET setting = NULL
Das funktioniert ja einwandfrei.
Du meinst, die IF-Abfrage ist in der UPDATE query falsch am Platz?
D.h.?
Mit "Falsch am Platz" kann ich nicht viel anfangen leider :(

 
TobiaZ
05-04-2009, 19:10 
 
UPDATE db SET setting = NULL
Das funktioniert ja einwandfrei. Ich habe nichts anderes erwartet. Aber was wolltest du uns dann hiermit Aha, es ist zwar möglich in die DB als INTEGER "NULL" einzutragen. Jedoch nicht über UPDATE SET ... mitteilen?

Du meinst, die IF-Abfrage ist in der UPDATE query falsch am Platz? Meine erste Aussage zu dem Thema hat es wohl auf den Punkt gebracht:

Nur ist das totaler Schwachsinn [die If-Abfrage einzubauen] und streng genommen falsch, weil Integer natürlich auch [genauso wie NULL] keine Strings sind!

 
phpMorpheus2
05-04-2009, 19:14 
 
JETZT habe ich es gerallt.
Boaaaahhh

http://de.geocities.com/quhno/smilies/original/wallbash.gif

 
TobiaZ
05-04-2009, 19:16 
 
:rocks:

In Zukunft einfach mal ein bisschen langsamer machen, ggf. zwei mal Lesen (sowohl unsere Antworten, als auch deine Fragen - vor dem Absenden) dann klappt auch auf Anhieb...

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:22 Uhr.