检查Php变量以正确的MySql类型(准备插入查询)


Check Php variables to proper MySql type (prepare for Insert query)

如果我要查询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