Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Anführungszeichen in Feld Type Longtext schreiben ? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Anführungszeichen in Feld Type Longtext schreiben ?


 
Tellux
31-03-2002, 00:33 
 
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

 
hand
01-04-2002, 22:14 
 
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 =&gt; 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)

 
Tellux
02-04-2002, 16:35 
 
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 ?????

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:10 Uhr.