Det borde fungera utmärkt att escape:a med backslash.
$query = "insert into table1 (field1) values ('onmouseover=\"this.src=(\\'hurra.gif\\');\"')";
Mvh,
Databaser & SQLur Databashanterare & SQL
7 svar · 266 visningar · startad av Neo
Hello!
Jag har problem med enkelfnuttar och dubbelfnuttar och INSERT:a i databasen...
Jag hämtar info som är postad förut och stämmer överens med t ex ett visst användarid, sen vill jag inserta samma info igen fast med ett annat användarid...
Problemet är att om det finns enkelfnuttar och dubbelfnuttar i de jag hämtar från databasen så pajar SQL-strängen för att inserta samma info!
Exempel:
variabel test kommer att innehålla, efter query i db:
$test = "onmouseover="this.src=('hurra.gif');""
Hur gör jag för att escapa detta on the fly?
//Neo
Det borde fungera utmärkt att escape:a med backslash.
$query = "insert into table1 (field1) values ('onmouseover=\"this.src=(\\'hurra.gif\\');\"')";
Mvh,
där är väl en ' för mycket i @nders kod.
Hej Anders!
Det funkar utmärkt men jag kanske var lite otydlig...
Koden ser inte ut så utan det där är vad varibeln skulle kunna innehålla...
Så här ser koden ut (lite förenklad):
--------------
$sqlobject = "SELECT * from pro_object_template WHERE user='$user_pro' AND pageid='$baseon'";
$resultobject = mysql_query($sqlobject);
$arrayobject = mysql_fetch_array($resultobject);
if (mysql_num_rows($resultobject)!=0) {
do {
// getid = new pageid
$content = $arrayobject["content"];
$sql_put_object = mysql_query("INSERT INTO pro_object_template (content) VALUES ('$content')");
} while ($arrayobject = mysql_fetch_array($resultobject));
}
--------------------
Jag ser alltså inte vad $content innehåller...
// Neo
Ja, jag visade bara teoretiskt. :)
Då får vi byta ut lite i php, det borde räcka att escape:a apostrof.
$content = str_replace("'", "\\'", $arrayobject["content"]);
Mvh,
Har du testat med addslashes() ?
Tack Anders!
Det funkar perfekt!
Det verkar som att när man hämtar upp info ur databsen så ersätts \ med ett space-tecken... är det så?
// Neo