PHP/MySQL: Probleme mit mysql_real_escape_string

Marokaner

Mitglied
Ich hab hier ein Problem was ich nicht verstehe!

Wie üblich wende ich für mein UPDATE die mysql_real_escape_string-Funktion an.
Doch irgendetwas läuft schief!

PHP:
$SQL_statement="UPDATE company SET company_NAME=' ". mysql_real_escape_string($company_Name) . "' ";
$companyupdate=mysql_query($SQL_statement);


Wenn z.B. $company_Name = Peter's Laden ist, dann steht in meiner MySQL-Tabelle lediglich Peter drin!
Könnt ihr mir sagen was ich falsch mache?

Oder muss ich in meiner php.ini vielleicht etwas umstellen, damit diese Funktion unterstützt wird?

Gruß Marokaner
 
Bitte vergesst meinen ersten Beitrag.
Das Problem entsteht schon beim auslesen der Daten.

Ich mache folgendes:
PHP:
//Unternehmensdaten auslesen
$companydetails_SQL="SELECT * FROM company WHERE company_ID = ' ".$company_ID."' ";
$company=mysql_fetch_array(mysql_query($companydetails_SQL));

Danach möchte ich die einzelnen Tabellenfelder in einem Formular zum Bearbeiten anbieten:
PHP:
echo "<td class=".$class."><input type='text' name='name' size='40' maxlength='120' value='".stripslashes($company['company_NAME'])."'></td>";

Wenn z.B. als Unternehmensname Peter's Laden in der Tabelle steht. Dann wird leider in meinem Formular nur 'Peter' angezeigt.
Egal ob ich 'stripslashes' anwende oder nicht!

Welche Funktion muss ich anwenden, damit der korrekte Name angezeigt wird?
 
Verwende htmlspecialchars() statt stripslashes():
PHP:
echo "<td class=".$class."><input type='text' name='name' size='40' maxlength='120' value='".htmlspecialchars($company['company_NAME'], ENT_QUOTES)."'></td>";
 
Ok! Funktioniert soweit, aber was ist wenn da jetzt ein anderes Sonderzeichen steht und kein ' ?
Dann funktioniert es nicht mehr, oder?

Kann man nicht 'mysql_real_escape_string' auch bei SELECT anwenden?
 
Was genau meinst du mit Sonderzeichen? Wenn es im verwendeten Zeichensatz enthalten ist, kann es auch direkt ausgegeben werden.
 
Die genannte Zeichen werden alle berücksichtigt beziehungsweise müssen nicht durch Zeichenreferenzen dargestellt werden.
 
Zurück