note 96391 added to function.mysql-real-escape-string
| From: | Anonymous at osu1 dot php dot net | Date: | Wed, 24 Feb 2010 17:42:36 +0000 |
| Subject: | note 96391 added to function.mysql-real-escape-string | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-166331@lists.php.net to get a copy of this message | ||
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); # Perfoming escaped query
} else {
$sql_query = mysql_query($query); # If no params...
}
return ($sql_query);
}
?>
----
Server IP: 69.147.83.197
Probable Submitter: 79.111.78.24
----
Manual Page -- http://www.php.net/manual/en/function.mysql-real-escape-string.php
Edit -- https://master.php.net/note/edit/96391
Del: integrated -- https://master.php.net/note/delete/96391/integrated
Del: useless -- https://master.php.net/note/delete/96391/useless
Del: bad code -- https://master.php.net/note/delete/96391/bad+code
Del: spam -- https://master.php.net/note/delete/96391/spam
Del: non-english -- https://master.php.net/note/delete/96391/non-english
Del: in docs -- https://master.php.net/note/delete/96391/in+docs
Del: other reasons-- https://master.php.net/note/delete/96391
Reject -- https://master.php.net/note/reject/96391
Search -- https://master.php.net/manage/user-notes.php