Home  >  Article  >  Database  >  服务器端用 mysql_real_escape_string 清洁客户端数据_MySQL

服务器端用 mysql_real_escape_string 清洁客户端数据_MySQL

WBOY
WBOYOriginal
2016-06-01 13:47:35858browse

bitsCN.com

由于 mysql_real_escape_string 需要 MySQL 数据库连接,因此,在调用 mysql_real_escape_string 之前,必须连接上 MySQL 数据库。

PHP:
function mysqlClean($data)
{
return (is_array($data))?array_map(mysqlClean, $data):mysql_real_escape_string($data);
}
?>

调用方法
PHP:

 

$conn = mysql_connect(localhost, user, pass);
...

$_POST = mysqlClean($_POST);
?>

经过清洁的数据可以直接插入数据库。

注意!mysql_real_escape_string 必须在(PHP 4 >= 4.3.0, PHP 5)的情况下才能使用。否则只能用 mysql_escape_string ,两者的区别是:

mysql_real_escape_string 考虑到连接的当前字符集,而mysql_escape_string 不考虑。


由于 mysql_real_escape_string 需要 MySQL 数据库连接,因此,在调用 mysql_real_escape_string 之前,必须连接上 MySQL 数据库。


在知道数据类型为字符串时,我们可以在清洁数据的同时限制字符串长度。此方法来自 David Lane, Hugh E. Williams《Web Database Application with PHP and MySQL 》(OReilly, May 2004)

PHP:

function mysqlClean($array, $index, $maxlength)
{
if (isset($array[$index]))
{
$input = substr($array["{$index}"], 0, $maxlength);
$input = mysql_real_escape_string($input);
return ($input);
}
return NULL;
}
?>


调用方法:
PHP: 

$conn = mysql_connect(localhost, user, pass);

if(isset($_POST[username]))
{
$_POST[username] = mysqlClean($_POST, username, 20);
echo $_POST[username];
}
?>

 

将 $_POST 数组中的 username 清洁并截取前20位字符。

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn