Leerer Datensatz
Thomas D.
- datenbank
Tach zusammen
Brauch da mal einen zu MySQL.
Wie kann ich verhindern wenn in eine Variable leer ist das diese in die SQL Datenbank eingetragen wird. Es soll nur dann was in die Datenbank geschrieben werden wenn die Variable auch Daten enthält.
Ích erinnere mich irgentwo das man das mit NOT NULL oder so machen kann.
Wäre nett wenn jemand einen Tip hat.
Gruss Thomas
Hi,
Brauch da mal einen zu MySQL.
Wie kann ich verhindern wenn in eine Variable leer ist das diese in die SQL Datenbank eingetragen wird. Es soll nur dann was in die Datenbank geschrieben werden wenn die Variable auch Daten enthält.
Das beste wird sein, das die Software machen zu lassen, die den Eintrag vornehmen wird.
Ích erinnere mich irgentwo das man das mit NOT NULL oder so machen kann.
Gibt es, ist nachzulesen hier
Hi Manuel
welche Software ??
Es ist ein simples php Skript welches die Variablen enthält und diese in die Database einfügt.
$sql="INSERT INTO online (data1,data2)";
$sql.="VALUES('$data1','$data2')";
Gruss Thomas
echo $begrüßung;
Es ist ein simples php Skript welches die Variablen enthält und diese in die Database einfügt.
Und was hindert dich daran, diesen Vorgang abhängig vom Inhalt der Variablen auszuführen oder auch nicht?
NOT NULL wirkt nur, wenn du auch NULL in die Datenbank eintragen willst. Leerstring sind jedenfalls nicht mit NULL gleichzusetzen.
echo "$verabschiedung $name";
Tach dedlfix...
Und wie verhindere ich das nun, wenns mit NOT NULL nicht geht ?
Ich häng da ein wenig fest.
Gruss Thomas D.
echo $begrüßung;
Und wie verhindere ich das nun, wenns mit NOT NULL nicht geht ?
Indem du "diesen Vorgang abhängig vom Inhalt der Variablen auszuführen oder auch nicht". Bedingte Programmausführung[*] bietet eigentlich jede Programmiersprache an.
echo "$verabschiedung $name";
[*] Oft heißt ein verwendbares Konstrukt if-then-else.
Hi,
Und wie verhindere ich das nun, wenns mit NOT NULL nicht geht ?
Ich häng da ein wenig fest.
if($variable != "")
mysql_query(...);
Du hast schon mal von if/else in PHP gehört?
Hallo,
NOT NULL wirkt nur, wenn du auch NULL in die Datenbank eintragen willst. Leerstring sind jedenfalls nicht mit NULL gleichzusetzen.
Bitte mal etwas genauer.
Wann wird bei MySQL ein Leerstring ankommen und wann NULL?
Ist ein Leerstring das gleiche, wie ' '?
Oder ist das nun wieder ein String mit Leerzeichen?
Was macht die PHP-Text-Schnittstelle von MySQL daraus, und was macht das DBMS später daraus?
Blickst Du voll durch?
LG
Chris
Hey
Bitte mal etwas genauer.
Wann wird bei MySQL ein Leerstring ankommen und wann NULL?
Es wird aus einer Email eine Variable ausgefiltert.
Beispiel: $datei1='Subject' $ datei2='Mailinhalt'
das Script wird alle 60 Sek aufgerufen und schaut ob eine Email in dem betreffenden Homeverzeichnis liegt.
Liegt keine dort drin, bzw. ist die Datei leer, sind die Variablen auch leer.
Ist ein Leerstring das gleiche, wie ' '?
Jep das ist das selbige
Genauer gesagt ''
Oder ist das nun wieder ein String mit Leerzeichen?
Was macht die PHP-Text-Schnittstelle von MySQL daraus, und was macht das DBMS später daraus?
Blickst Du voll durch?
Nee nicht wirklich !!!!
Gruesse Thomas
echo $begrüßung;
Wann wird bei MySQL ein Leerstring ankommen und wann NULL?
Ausgehend vom Quelltext des OPs
$sql="INSERT INTO online (data1,data2)";
$sql.="VALUES('$data1','$data2')";
wird bei ihm immer ein Leerstring in der Datenbank landen, wenn seine Variablen einen Leerstring enthalten, vom PHP-Typ NULL (PHP-NULL != Datenbank-NULL) sind oder nicht gesetzt sind. Du siehst Stringbegrenzungszeichen um $data1 und $data2?
Ein Datenbank-NULL landet nur dann in der Datenbank wenn man in einen SQL-Befehl (INSERT, UPDATE) das SQL-Schlüsselwort NULL verwendet oder wenn durch Ausnutzen eines Default-Wert-Mechanismus ein als NULL definierter Default-Wert beim Datensatz-Anlegen eingetragen wird.
Ist ein Leerstring das gleiche, wie ' '?
Nein. Allgemein üblich spricht man von einem Leerstring, wenn man einen String hat, der keine Zeichen enthält, auch keine Leerzeichen.
Was macht die PHP-Text-Schnittstelle von MySQL daraus,
Mir ist nicht bekannt, dass MySQL eine PHP-Schnittstelle hat.
und was macht das DBMS später daraus?
Woraus genau und wie definierst du "später"?
echo "$verabschiedung $name";
Hallo Dedlfix,
Mir ist nicht bekannt, dass MySQL eine PHP-Schnittstelle hat.
Dann solltest Du vielleicht nochmal etwas nachdenken? :-))
Alle mysql_*-Funktionen von PHP gehören zur "PHP-Schnittstelle" von MySQL und umgekehrt. Sicher magst Du jetzt einwenden, dass MySQL da nur eine C-Schnittstelle hat oder nur eine Pascal-Schnittstelle... Aber in Wirklichkeit iat es wohl sogar nur eine i386-Schnittstelle.
Schlussendlich sieht es aus der Sicht des PHP-Programmierers (Anwendung) doch so aus, als hätte zumindest PHP eine MySQL-API, also spezielle Funktionen für den Zugriff auf MySQL. Da oetwas nicht ohne Rückweg sinnvoll ist, muss dann wohl auch MySQL ein "PHP-API" besitzen. Es stellt die Daten in einem für PHP lesbaren Format zur Verfügung.
Außerdem handelt es sich nicht um eine "Schnittstelle", sondern um eine "Verbindungsstelle" oder "Transferstelle". Hier werden also zwei verschiedene Welten miteinander verbunden, und nicht eine Welt mit geschlossener Syntax in zwei zerschnitten.
Aber das ist das Gleiche, wie mit "email-Adresse". Sowas gibt es auch nicht. Es gibt nur "email-Namen"
LG
Chris
echo $begrüßung;
Alle mysql_*-Funktionen von PHP gehören zur "PHP-Schnittstelle" von MySQL und umgekehrt. Sicher magst Du jetzt einwenden, dass MySQL da nur eine C-Schnittstelle hat oder nur eine Pascal-Schnittstelle... Aber in Wirklichkeit iat es wohl sogar nur eine i386-Schnittstelle.
MySQL bringt eine C API mit, sowie noch ein paar Connectoren (siehe Download-Seite)
Andere Projekte und Programmiersprachen stellen dem Programmierer ihrerseits APIs zur Verfügung, die auf der MySQL C API aufsetzen oder auf selbige zugreifen. Das MySQL-Handbuch listet in Kapitel 22.3 bis 22.9 einige auf. Wie den Kapiteln zu entnehmen ist, sind diese kein Bestandteil von MySQL. Mit anderen Worten: PHP bietet zwar eine MySQL-API an, MySQL bietet aber keine PHP-API an.
Schlussendlich sieht es aus der Sicht des PHP-Programmierers (Anwendung) doch so aus, als hätte zumindest PHP eine MySQL-API, also spezielle Funktionen für den Zugriff auf MySQL.
Ja, das habe ich nicht bestritten. Und es sieht nicht nur so aus, es ist so.
Da oetwas nicht ohne Rückweg sinnvoll ist, muss dann wohl auch MySQL ein "PHP-API" besitzen. Es stellt die Daten in einem für PHP lesbaren Format zur Verfügung.
Der "Rückweg" ist einfach nur ein Funktionsergebnis, das die aufgerufene MySQL-API-Funktion zurückgibt. Die Umzusetzung des Funktionsergebnisses in ein Format der Sprache/Anwendung X ist nicht Aufgabe von MySQLs API sondern von Sprache/Anwendung X.
Was stellst du dir vor sollte passieren, wenn MySQL von sich aus der Anwendung X etwas mitteilen will? Anwendung X müsste dann auf dieses Ereignis reagieren. Was aber, wenn diese gar nicht ereignisgesteuert ist, wie beispielsweise PHP?
echo "$verabschiedung $name";
Hallo Chris,
Wann wird bei MySQL ein Leerstring ankommen und wann NULL?
Bei MySQL wird eine SQL-Anweisung als Zeichenkette ankommen.
-- Voraussetzung: Tabelle 'tabelle' enthält die Spalte 'feld'
-- vom Datentyp VARCHAR(N) mit N > 2 :-)
-- in feld wird ein Leerstring eingefügt:
INSERT INTO tabelle (feld) VALUES ('')
-- in feld wird eine Zeichenkette mit Leerzeichen eingefügt
INSERT INTO tabelle (feld) VALUES (' ')
-- in feld wird der NULL-Wert eingefügt
INSERT INTO tabelle (feld) VALUES (NULL)
Ist ein Leerstring das gleiche, wie ' '?
Nein.
Oder ist das nun wieder ein String mit Leerzeichen?
Zweites: ja.
Blickst Du voll durch?
Ich hoffe es :-)
Mehr zu NULL-Werten unter MySQL im Handbuch.
Freundliche Grüße
Vinzenz