mySQL "?" im Datensatz wird zu "NULL"...
Dachdeckermeister
- datenbank
...ist ja einigermaßen logisch, aber wie kann ich das verhindern?
mfG Markus
...ist ja einigermaßen logisch, aber wie kann ich das verhindern?
Warum soll das logisch sein?
-v
Gruß
Christian
...ist ja einigermaßen logisch, aber wie kann ich das verhindern?
Warum soll das logisch sein?
Weil da steht: blabla?irgendewas, und das ? im allgemeinen als Operator gesehen wird. daher denk ich wird es auch als solcher verarbeitet
-v
-v? wie soll ich das deuten?
Gruß
Christian
Weil da steht: blabla?irgendewas, und das ? im allgemeinen als Operator gesehen wird. daher denk ich wird es auch als solcher verarbeitet
Wo steht das?
-v? wie soll ich das deuten?
Damit habe ich die aufordern wollen wortreicher zu sein. Versuch dich mal in unsere Lage zu versetzen, Du bist an dem Problem wahrscheinlich schon eine Zeit lang dran, wir aber nicht deshalb brauchen wir mehr Information um dein Problehm überhaupt zu sehen.
So kann ich dir nur ein RTFM gebeben.
3.3.4.6 Working with NULL Values
http://www.mysql.com/doc/en/Working_with_NULL.html
A.5.3 Problems with NULL Values
http://www.mysql.com/doc/en/Problems_with_NULL.html
Gruß
Christian
Hi again...
-v? wie soll ich das deuten?
Damit habe ich die aufordern wollen wortreicher zu sein. Versuch dich mal in unsere Lage zu versetzen, Du bist an dem Problem wahrscheinlich schon eine Zeit lang dran, wir aber nicht deshalb brauchen wir mehr Information um dein Problehm überhaupt zu sehen.
OK, das mySQL Manual hab ich mir natürlich auch schon reingezogen, bin aber weder dort, noch im Forumarchiv fündig geworden.
Also mein Problem mal etwas näher erläutert.
Ich möchte über ein PerlScript ein HTML-Formular in eine Datenbank Tabelle ablegen. Ist ja auch nix weiter neues. Um die Formulardaten auszulesen nutze ich das Modul CGI. Nun ist ja klar, das in Textfeldern etc. auch mal ein "?" stehen kann, was in meinem Fall von der Datenbank zu "NULL" verunglimpft wird. Einfach alle "NULL"'s beim lesen zu "?" zu machen ist ja nun auch nicht der Bringer. Es könnte ja auch mal wirklich "NULL" gemeint sein.
Ich hab wie weiter oben auch schon probiert mittels RegExp das ? zu ? umzubauen (~s /?/\?/g;) Der Versuch schlug jedoch fehl, und das Verhalten war nach wie vor das gleiche.
Auf dem weg bin ich jetzt auf %3F gestoßen, was zwar funktioniert, aber mit dessen Lösung ich aber recht unglücklich bin. :-/
Hoffe so findest Du jetzt besser rein.
mfG Markus
Moin!
Ich kann das Problem nicht nachvollziehen:
mysql> insert into test set Text='?';
Query OK, 1 row affected (0.02 sec)
mysql> select * from test;
+----+-----------------+
| id | Text |
+----+-----------------+
| 1 | Ein Text |
| 2 | Noch ein Text. |
| 3 | ? |
+----+-----------------+
3 rows in set (0.00 sec)
Ganz offensichtlich geht es also. Könnte es sein, daß Du vergessen hast den Value in Anführungsstriche zu packen?
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
Re Moin...
Ich kann das Problem nicht nachvollziehen:
Ich auch nicht :-)
mysql> insert into test set Text='?';
Query OK, 1 row affected (0.02 sec)mysql> select * from test;
+----+-----------------+
| id | Text |
+----+-----------------+
| 1 | Ein Text |
| 2 | Noch ein Text. |
| 3 | ? |
+----+-----------------+
3 rows in set (0.00 sec)Ganz offensichtlich geht es also. Könnte es sein, daß Du vergessen hast den Value in Anführungsstriche zu packen?
Also:
ich nehm halt einen Scalar $irgendwas dessen Inhalt zum Beispiel "Hallo wie gehts?" ist.
Dann erzeuge ich das DB-Query wie folgt:
$query = "INSERT INTO table text VALUES ('$irgendwas')";
und gebe es mit
$dbh->do($query);
an die Datenbank weiter.
und dann steht im Datenbankfeld 'text' "Hallo wie gehtsNULL"
wieso nur?
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
MUFG (mit unverschämt fetten Grüßen)
Markus
Hi ,
Also:
ich nehm halt einen Scalar $irgendwas dessen Inhalt zum Beispiel "Hallo wie gehts?" ist.
Dann erzeuge ich das DB-Query wie folgt:
$query = "INSERT INTO table text VALUES ('$irgendwas')";
Was kommt raus wenn du hier mal $query ausgeben läst?
und gebe es mit
$dbh->do($query);
an die Datenbank weiter.
und dann steht im Datenbankfeld 'text' "Hallo wie gehtsNULL"
wieso nur?
Es scheint aber ofensichtlich kein mysql Problem zu sein. Und bei Perl kann ich dir leider nicht helfen.
Gruß
Christian
Hi ,
Also:
ich nehm halt einen Scalar $irgendwas dessen Inhalt zum Beispiel "Hallo wie gehts?" ist.
Dann erzeuge ich das DB-Query wie folgt:
$query = "INSERT INTO table text VALUES ('$irgendwas')";Was kommt raus wenn du hier mal $query ausgeben läst?
Es kommt 'test?test.test' raus
und gebe es mit
$dbh->do($query);
an die Datenbank weiter.
und dann steht im Datenbankfeld 'text' "Hallo wie gehtsNULL"
wieso nur?Es scheint aber ofensichtlich kein mysql Problem zu sein. Und bei Perl kann ich dir leider nicht helfen.
Gruß
Christian
Moin!
Es scheint aber ofensichtlich kein mysql Problem zu sein. Und bei Perl kann ich dir leider nicht helfen.
Es ist kein MySQL- Problem.
mysql> insert into test set Text='Hallo wie gehts?';
Query OK, 1 row affected (0.01 sec)
mysql> select * from test;
+----+------------------+
| id | Text |
+----+------------------+
| 1 | Ein langer Text |
| 2 | Noch ein Text. |
| 3 | ? |
| 4 | Hallo wie gehts? |
+----+------------------+
4 rows in set (0.00 sec)
Vermutlich wird es Zeit für etwas Perl- Quelltext. MySQL tut jedenfalls, was es soll, Auch dann, wenn ich die klassische Schreibweise für den insert- Befehl verwende.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
...ist ja einigermaßen logisch, aber wie kann ich das verhindern?
"?"
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
Moin moin!
...ist ja einigermaßen logisch, aber wie kann ich das verhindern?
"?"
Hatt' ich mir auch schon gedacht :-/
aber denken ist ja bekanntlich Glückssache 'ne :)
Ich hab nun versucht mittels regexp aus dem ? ein ? zu machen, ohne Erfolg.
Das Einzige was mich etwas weiter gebracht hat ist:
$scalar =~ s/?/%3F/g;
Aber leider bin ich mit der Lösung nicht wirklich zufrieden. Noch andere "suggestionen"?
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Thanx, Euer Dachdeckermeister
Moin!
aber denken ist ja bekanntlich Glückssache 'ne :)
Glaskugeln auch. Beschreib mal genauer, wann und wie der fehler auftritt.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
siehe hier [pref:t=60839&m=342591]
mfG Markus
Moin!
...ist ja einigermaßen logisch, aber wie kann ich das verhindern?
"?"
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®