mysql_real_escape_string

Carrear

Erfahrenes Mitglied
Hi Leutz,

ihr seht ja schon um was es geht. Im Prinzip möchte ich nur mal eure Erfahrungen hören. Ich habe mit mysql_real_escape_string nur Probleme. Egal welche Variabe ich da durch laufen lasse, es kommt nichts mehr in der Datenbank an. Einfach nichts, komplett leer. Ich hab grad schon wieder 2 Stunden vor einem Script gesessen, was ich grad umgeschrieben habe und habe überall nach komplizierten Fehlern gesucht, bis ich heraus fand, dass es nur an diesem dummen Befehl lag, dass einfach nichts in der Datenbank steht. Ist das nur bei mir so? Das betrifft sowohl Zahlen als auch Zeichenketten.

Viele Grüße
 
Ich habe da keinerlei ähnliche Erfahrungen :eek:

Zeig doch mal ein bissl Code.

Bist du sicher, dass du bereits eine offene Datenbankverbindung hast, wenn du mysql_real_escape_string() einsetzt.
 
Ich habe da keinerlei ähnliche Erfahrungen :eek:

Zeig doch mal ein bissl Code.

Bist du sicher, dass du bereits eine offene Datenbankverbindung hast, wenn du mysql_real_escape_string() einsetzt.

@Sven

Haha, okay das hab ich davon wenn ich mit Halbwissen glänzen will. Ich wusste nicht, dass die DB Verbindung schon bestehen muss, damit ich diese Funktion nutzen kann. Aber eins verstehe ich dann nicht. An der gleichen Stelle den Befehl mysql_escape_string funktioniert auch ohne DB Verbindung.

PHP:
function add_commi($message, $name, $bid)
{
    $name = mysql_real_escape_string($name);
    $message = mysql_real_escape_string($message);
    $bid = mysql_real_escape_string($bid);

    $connection = db_connect();
    $query = "INSERT INTO `blog_comments` SET `author` = '{$name}', `content` = '{$message}', `blog_id` = '{$bid}'";
    mysql_query($query) OR die(mysql_error());
    db_close($connection);
}
 
Aber eins verstehe ich dann nicht. An der gleichen Stelle den Befehl mysql_escape_string funktioniert auch ohne DB Verbindung.

Mmhh, das ist eigentlich recht einfach zu Verstehen....genau darin liegt der signifikante Unterschied zwischen beiden Funktionen :-)

mysql_real_escape_string() berücksichtigt im Gegensatz zu mysql_escape_string() den Zeichensatz der Datenbankverbindung.
Um diesen berücksichtigen zu Können, muss die Verbindung bestehen...damit mysql_real_escape_string() weiss, in welchem Zeichensatz die Daten ausgetauscht werden sollen.
 
Zurück