0

如果我要用这个查询mysql:

mysql_query("INSERT INTO subscribers (email, referral_id, user_id, ip_address)
VALUES ('$user_email', '$user_refer', '$user_share', '".$_SERVER['REMOTE_ADDR']."')");

我如何检查那些刚刚从 $_REQUEST["user_mail"] 读取的变量(例如 $user_mail),尊重它们的 MySql 类型(varchar(30) notnull)?

一旦我全部保存$_REQUEST$vars是否有任何快速功能可以检查 MySql 类型?

4

1 回答 1

1

首先,您应该在PDOMySQLi中使用准备好的语句。我推荐PDO。PHP 网站上有一些带有 PDO 的准备好的语句示例。

其次,您的应用程序应该控制发送到数据库的内容。您可以编写自定义验证规则以匹配每一列:

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
于 2013-06-06T07:44:32.720 回答