Blockklammern in Querys
Eingetragen von DirkZ (11)
am 08.02.2011 - 12:36 Uhr in
am 08.02.2011 - 12:36 Uhr in
Hallom
Ich möchte gerne die Ausgabe von json_encode in der Datenbank speichern. In diesen Strings sind jedoch Blockklammern { und } vorhanden, die von db_query offensichlich raus gefiltert werden.
dbquery('UPDATE test SET test = '{test}' WHERE id = '1'');
Und in der Datenbank steht nur 'test', also ohne Klammern.
Gibts ne Möglichkeit, das zu umgehen?
- Anmelden oder Registrieren um Kommentare zu schreiben
escape
am 08.02.2011 - 13:46 Uhr
Hallo.
dbquery('UPDATE test SET test = '{test}' WHERE id = '1'');
Hast Du mal versucht, die Klammern zu escapen?
dbquery('UPDATE test SET test = '\{test\}' WHERE id = '1'');
Oder besser noch
<?php
db_query("UPDATE {test} SET test = '%s' WHERE id = %d", "{test}", 1);
?>
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Danke erstmal Mit dem escapen
am 08.02.2011 - 13:50 Uhr
Danke erstmal
Mit dem escapen habe ich bereits probiert. Die 2. Lösung war es dann.
Danke
db_query mit Platzhaltern verwenden
am 08.02.2011 - 15:13 Uhr
Hallo!
Du solltest bei db_query mit Platzhaltern arbeiten:
db_query("UPDATE {test} SET test ='%s' WHERE id=%d", '{test}', 1);
sollte dann wie gewünscht funktionieren.
Sieht am Anfang etwas kompliziert aus am Anfang, aber da du ja warscheinlich ohnehin mit Variablen für den String und die id arbeiten wirst, ist es eh besser.
Ausserdem:
Hoffe das hilft dir weiter...
Grüsse,
Dietmar.