Hi Leute !
Ich versuche krampfhaft einen String in ein Longtextfeld zu schreiben der Anführungszeichen enthält. Habe auch brav die Escape Zeichen davor gesetzt.
Was passiert ? Nicht viel, der String wird bis zum 1. Anführungszeichen geschrieben und dann ist Sense !
Habe leider keine Idee warum das nicht geht.
Hier die var:
$url = "<a href=\"javascript:;\" onMouseUp=\"MM_openBrWindow('unternehmen/entwicklung_innen_set/action_innen_set.html','wbDeuEng','scrollbars=yes,resizable=yes,width=600,height=500')\" class=\"fett2\">Unternehmen - Entwicklung</a>";
Kennt das Prob jemand ?
Grüße
Tellux
Tabelle
mysql> describe test;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| a | longtext | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
1 row in set (0.49 sec)
Insert (Vor den Single Hochkomma muß ein Backslash gesetzt werden beim nachfolgenden Skript muß das Blank zwischen \ und ' weg, es geht nicht besser posten, sonst wird der \ geschluckt)
<?
$url = "<a href=\"java script:;\" onMouseUp=\"MM_openBrWindow(\\ 'unternehmen/entwicklung_innen_set/action_innen_set.html\\ ',\\ 'wbDeuEng\\ ',\\ 'scrollbars=yes,resizable=yes,width=600,height=500\\ ')\" class=\"fett2\">Unternehmen - Entwicklung</a>";
function mysql_die($msg) {
echo "<b>$msg => mysql-error: ".mysql_errno().":".mysql_error()."</b><br>\n";
}
$verbindung = mysql_connect("localhost","","") or mysql_die("Keine SQL-Verbindung");
mysql_select_db("test", $verbindung) or mysql_die("Datenbank konnte nicht ausgewählt werden");
$query = "insert into tabelle values ('$url')";
mysql_db_query("test",$query,$verbindung) or mysql_die("Insert?");
echo "fertig";
?>
Ergebnis
mysql> select * from test;
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| a |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| <a href="java script:;" onMouseUp="MM_openBrWindow('unternehmen/entwicklung_innen_set/action_innen_set.html','wbDeuEng','scrollbars=yes,resizable=yes,width=600,height=500')" class="fett2">Unternehmen - Entwicklung</a> |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.27 sec)
Danke für die Antwort. Prob besteht leider weiterhin.
Wenn ich testweise das erste Anfuehrungszeichen lösche wird alles ok in das Feld geschrieben aber nur bis zum nächsten "
Bis zu den Single Hochkomma's kommt der gar nicht erst.
Ich hab da aber gerade was gefunden:
Wenn Sie Binärdaten direkt in ein BLOB-Feld schreiben, müssen Sie die folgenden Zeichen als Escape-Sequenz (mit \ vorangestellt) angeben:
- NUL (ASCII 0)
- \ (ASCII 92)
- ' (ASCII 39)
- " (ASCII 34)
Alle Tests schlugen aber fehl. Es wird immer nur der String geschrieben und nicht das "
Ist leider kein Bsp. für die richtige Syntax dabei.
Wie geht das ?
$url = "<a href=\(ASCII 34)javascript:;........;
oder so ähnlich ?????