note 96390 deleted from function.mysql-real-escape-string by danbrown

From: Date: Wed, 24 Feb 2010 17:52:26 +0000
Subject: note 96390 deleted from function.mysql-real-escape-string by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-166332@lists.php.net to get a copy of this message
Note Submitter: root at aeze dot ru ---- Here my simple but very effective function for safe mysql queries. <?php /** * USAGE: mysql_safe( string $query [, array $params ] ) * $query - SQL query WITHOUT any user-entered parameters. Replace parameters with "?" * e.g. $query = "SELECT date from history WHERE login = ?" * $params - array of parameters * * Example: * mysql_safe( "SELECT secret FROM db WHERE login = ?", array($login) ); # one parameter * mysql_safe( "SELECT secret FROM db WHERE login = ? AND password = ?", array($login, $password) ); # multiple parameters * That will result safe query to MySQL with escaped $login and $password. **/ function mysql_safe($query,$params=false) { if ($params) { foreach ($params as &$v) { $v = mysql_real_escape_string($v); } # Escaping parameters # str_replace - replacing ? -> %s. %s is ugly in raw sql query # vsprintf - replacing all %s to parameters $sql_query = vsprintf( str_replace("?","'%s'",$query), $params ); $sql_query = mysql_query($sql_query,$this->msql_id); # Perfoming escaped query } else { $sql_query = mysql_query($query,$this->msql_id); # If no params... } # If error occured while if (!$sql_query) { die(mysql_error(); } } ?>

« previous php.notes (#166332) next »