本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。
注: mysql_real_escape_string() 并不转义 % 和 _。
例子 1. mysql_real_escape_string() 例子
<?php
$item = "Zak's and Derick's Laptop"
$escaped_item = mysql_real_escape_string($item)
printf ("Escaped string: %s\n", $escaped_item)
?>
以上例子将产生如下输出:
Escaped string: Zak\'s and Derick\'s Laptop
用js过滤非法字符是不安全的,js是客户端技术,可以本地绕过如果数据是入库的,最好在服务器端在过滤一次,防止恶意字符进入数据库,形成注入,可以这样过滤
<?php
if (isset($_GET['price'])){
(is_numeric($_GET['price']) and is_int($_GET['price']+0))?$price=$_GET['price']:die('非int类型,请重新输入')
echo "价格为 $price"
}
?>
<form action="">
<input type="text" name="price">
<input type="submit" value="send">
</form>
不过int型范围是2147483647,超出后即使是整数,也被解释为float