Inhalt eines Kommentarfeldes in DB schreiben

Sandro Feuillet

Legendäres Mitglied
Hi,

Ich habe ein normales HTML Textfeld, dessen Inhalt per odbc verbindung in eine access DB geschrieben wird. Befindet Sich nun ein Sonderzeichen wie ' darin kriege ich folgende Errormeldung:

CODE Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''dies \' ist der \'sonderzeichentest''., SQL state 37000 in SQLExecDirect in H:\Data\mccq\dev\index.php on line 458

Weiss jemand mit was ich in PHP diese Sonderzeichen ändern oder rausfiltern kann, damit auf jeden fall immer in die DB geschrieben wird?

Gruss Sandro
 
danke für den tipp, hilft leider nicht:

CODE
Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''dies ist \\\' der \\\'\\\' test \\\' mit den \\\' sonderzeichen','123456754','no','yes','yes','yes','yes','yes','German','no template used','Action','Internet');'., SQL state 37000 in SQLExecDirect in H:\Data\mccq\dev\index.php on line 461
 
Access und PHP
dry.gif


Sollte aber mit addslashes laufen, sonst probier was eigenes:

So in dem Styl:
CODE
function kill_koma(string) {
string = ereg_replace("'", "\'", string);
return string;
}
 
Ersetze ' durch '' (zwei mal ', nicht das doppelte Anführungszeichen!)
Dann sollte es klappen...ist bei Access und SQL-Server so, unabhängig ob nun aus
PHP, ASP oder WTF
 
Vielleicht hilft das weiter:
CODE function tosql($value, $type)
{
if(!strlen($value))
return "NULL";
else
if($type == "Number")
return str_replace (",", ".", doubleval($value));
else
{
if(get_magic_quotes_gpc() == 0)
{
$value = str_replace("'","''",$value);
$value = str_replace("\\","\\\\",$value);
}
else
{
$value = str_replace("\\'","''",$value);
$value = str_replace("\\\"","\"",$value);
}

return "'" . $value . "'";
}
}
 
QUOTE (eVolver @ Mi 15.9.2004, 11:19) Ersetze ' durch '' (zwei mal ', nicht das doppelte Anführungszeichen!)
Dann sollte es klappen...ist bei Access und SQL-Server so, unabhängig ob nun aus
PHP, ASP oder WTF
Vielen Dank, dies hat das Problem gelöst...

Gruss Sandro
 
weiss der teufel, wieso es immer wieder solche platzhalter ausnahmen gibt!

beispiel C:
praktisch alle sonderzeichen werden mit \ davor dargestellt, nur das % nicht, das wird (wie hier mit dem doppelten ' ) mit %% dargestellt...

würde mich mal interessieren, wer auf solche ideen kommt und weshalb...
dry.gif
 
Zurück
Oben