Andi: inhalt aus DB enthält php-code

Beitrag lesen

So generell gesagt ist das nicht richtig, denn sie ist nur für Strings vorgesehen. Bei Zahlen, die nicht in Anführungszeichen in ein SQL-Statement geschrieben werden, ist diese Funktion nicht nur überflüssig, sie wiegt den Anwender auch in falscher Sicherheit. Siehe Zahlen im (My)SQL-Statement.

Ich setze meine Anführungszeichen eh selbst in der Abfrage. Werte die Zahlen sein müssen werden vorher darauf überprüft. Die bekommen dann keine Anführungszeichen was aber bei MySQL eh uninteressant ist, wenn ein Feld ein Integer erwartet wird es per Typecast umgewandelt.

Hier mal die Funktion die bei meiner Datenbank-Klasse zum escapen da ist. Nicht unbedingt perfekt, aber naja:

public function escape($var)  
{  
	if ( is_int($var) || is_bool($var) ) { return (int)$var; }  
	if ( is_float($var) ) { return (float)$var; }  
  
	if( get_magic_quotes_gpc() )  
	{  
		$var = stripslashes($var);  
	}  
  
	return mysql_real_escape_string($var, $this->db_connect_id);  
}