<?php
/*
本实例模仿用户登录时查询数据库的场景
$sql="select * from user where username={$_POST['username']} and userpass=".md5($_POST['userpass']);
mysql_real_escape_string($unescaped_string) 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集
本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。
sprintf() 函数把格式化的字符串写入一个变量中。
sprintf(format,arg1,arg2,arg++)
参数 format 是转换的格式,以百分比符号 ("%") 开始到转换字符结束。下面的可能的 format 值:
%% - 返回百分比符号
%b - 二进制数
%c - 依照 ASCII 值的字符
%d - 带符号十进制数
%e - 可续计数法(比如 1.5e+3)
%u - 无符号十进制数
%f - 浮点数(local settings aware)
%F - 浮点数(not local settings aware)
%o - 八进制数
%s - 字符串
%x - 十六进制数(小写字母)
%X - 十六进制数(大写字母)
*/
$sql="select * from user where username=".mysql_real_escape_string($_POST['username'])." and userpass=".md5(mysql_real_escape_string($_POST['userpass']));
$sql=sprintf("select * from user where username='%s' and userpass='%s'",mysql_real_escape_string($_POST['username']),md5(mysql_real_escape_string($_POST['userpass']));
?>