$query=sprintf("SELECT COUNT(id) FROM users WHERE UPPER(username) = UPPER('%s')",
mysql_real_escape_string($name));
这是我的注册码,我将检查我的数据库中是否已经存在相同的用户名,并将所有内容都转换为大写以避免相同的名称具有不同的大小写(比萨、比萨)。我有两个问题:
1) 现在为了防止 sql 注入,我使用 mysql_real_escape_string($name) 但这可以吗?我可以在该函数中使用变量还是必须使用$_POST['user']
?
2)究竟是sprintf()
什么?为什么我需要它,为什么'%s'
在里面?