Problem beim Speichern von langen Texten

Sasser

Erfahrenes Mitglied
Hallo Leute!

Ich speichere über die folgende Funktion Texte:

PHP:
function save($save)
{
foreach ($save as $column => $value)
{
$db = connect_db();
mysql_query("UPDATE config SET `content` = '$value' WHERE `name` = '$column'", $db);
mysql_close($db);
}
}

Kurze Texte funktionieren super, nur wenn man die AGB`s speichert (die etwas länger sind) bricht er ab und speichert nichts ab!

An was liegt das?
 
Error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's und Nutzungsbedingungen gilt das Recht der Bundesrepublik Deutschland. Soweit ' at line 1
 
Ich habe den Fehler schon selbst gefunden: Ich darf keine ' in dem Text haben. " sind erlaubt aber mit ' hat er ein Problem!

Hat jemand eine Lösung?
 
Könnte man das direkt in die DB-Verbindung einbauen?

PHP:
function connect_db()
{
$dbname = "";
$dbhost = "";
$dbuser = "";
$dbpwd = "";
$db = @mysql_connect($dbhost, $dbuser, $dbpwd);
      @mysql_select_db($dbname, $db) or die ("Datenbankfehler!");
return $db;
}
 
Das mysql_real_escape_string ist meiner Meinung nach nicht möglich direkt in das connect einzubauen, am besten machste das mit jeder Variable die du in die Datenbank eintragen willst.
 
In jede Variable?

D.h. ich muss dieses Ding in über 200 Variablen oder so nachtragen?

Gibt es wirklich keine andere Möglichkeit?
 
Du hast doch eine foreach-Schleife. Es reicht doch, wenn du dort einmal diese Funktion implementierst. Die Namen der Variablen sind doch immer identisch ($column, $value).
Sobald du dann die Funktion "save" startest, werden auch die Sonderzeichen entfernt...

Gruß
derPfaff
 
Zurück