PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   HTML Dateiinhalt in MySQL speichern (http://www.selfphp.de/forum/showthread.php?t=6604)

Heavenfighter 10.01.2004 14:34:58

HTML Dateiinhalt in MySQL speichern
 
Hallo,

ich möchte den Inhalt einer Html Datei gerne in meine Datenbank speichern. Dazu lese ich die Datei zeilenweise aus und versuche sie dann zu seichern.
Ich bekomme aber immer eine MySQL Fehlermeldung der Art:
1064 ,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 Pages.

Mein Code sieht so aus:
PHP-Code:

if ( file_exists($datei) ) 
{
    
$file fopen($datei'rb');
    
$dateiinhalt ="";
    
    while (!
feof($file)) 
    {
      
$dateiinhalt .= fgets($filefilesize($datei));
    }
    
fclose ($file);
}

$sql " INSERT INTO designs (content) VALUES ( '$dateiinhalt' ) ";
$seite = @mysql_db_query($datenbank,$sql); 

DAbei ist das Datenbankfeld content vom Typ Text.
Wenn ich die Variable Dateiinhal aus einem Textfeld vom Formular fülle klappts.
Woran liegt das?

meikel (†) 10.01.2004 15:39:40

Re: HTML Dateiinhalt in MySQL speichern
 
Zitat:

Original geschrieben von Heavenfighter
ich möchte den Inhalt einer Html Datei gerne in meine Datenbank speichern. Ich bekomme aber immer eine MySQL Fehlermeldung der Art:
1064 ,You have an error in your SQL syntax.
Klar, da sich in dem HTML Quelltext jede Menge ' und " befinden, die Du escapen mußt, damit die Syntax stimmt.

PHP-Code:

if ( file_exists($datei) ) 
{
    
$file fopen($datei'rb');
    
$dateiinhalt ="";
    
    while (!
feof($file)) 
    {
      
$dateiinhalt .= fgets($filefilesize($datei));
    }
    
fclose ($file);
}

$sql " INSERT INTO designs (content) VALUES ( '".addslashes($dateiinhalt)."' ) ";
$seite = @mysql_db_query($datenbank,$sql); 

Beim Lesen und Anzeigen mußt Du dann mit stripslashes() die Escapezeichen wieder entfernen.

Heavenfighter 11.01.2004 18:38:04

Hmm, ok werde ich versuchen.
Aber wieso geht es mit einem Textfeld? Da kann ich auch " und ' eingeben und es klappt trotzdem.

meikel (†) 11.01.2004 19:15:36

Zitat:

Original geschrieben von Heavenfighter
Hmm, ok werde ich versuchen.
Aber wieso geht es mit einem Textfeld? Da kann ich auch " und ' eingeben und es klappt trotzdem.

Falls Du PhpMyAdmin meinst: der escaped der Kram bei Bedarf selber. Falls Du ein eigenes Script mit Textarea im Formular meinst: wahrscheinlich ist bei Dir magic_quotes_gpc = On


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:40:36 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.