如果我要查询mysql:
mysql_query("INSERT INTO subscribers (email, referral_id, user_id, ip_address)
VALUES ('$user_email', '$user_refer', '$user_share', '".$_SERVER['REMOTE_ADDR']."')");
我如何检查这些变量(例如$user_mail),刚刚从$_REQUEST["user_mail"]读取,尊重他们的MySql类型(varchar(30) notnull)?
一旦我保存了所有的$_REQUEST
在$vars
有任何快速的功能来检查MySql类型?
首先,您应该使用PDO或MySQLi准备好的语句。我推荐PDO。在PHP网站上有一些关于预处理语句的例子。
其次,你的应用程序应该控制发送到数据库的内容。您可以编写自定义验证规则来匹配每个列:
if(strlen(trim($_REQUEST["user_mail"])) > 30){
//Show error to user because they're not going to like having
//their mail truncated without warning.
}
你也可以考虑使用SQL查询:
DESCRIBE NameOfYourTable