我有一个这样的查询:
INSERT INTO table(type) values($type);
我从get方法的一个参数中得到$type
。像这样:
$type = $_GET['type'];
如您所知,如果$_GET['type']
不可用,则该查询将设置NULL
而不是$type
。
现在我想知道,我应该这样检查吗?
$type = isset($_GET['type']) ? $_GET['type'] : null;
或者那个条件没用?
如果可以接受null值,并且可以安全地使用它进行输入,则无需检查null值。
显然,如果null在程序的其他地方不被接受,那么你需要验证它,并将字段设置为不接受它。在这种情况下,我会按照你的方式进行验证,只有当数据库接受该值时,我才会继续处理数据库条目。
if(!empty($_GET['type']))
{ $type = $_GET['type']
}
这应该能解决你的问题:)。
在进入SQL查询之前,始终需要检查变量是否存在或有效
if ( ! isset($_GET['type'])) {
die('no value given');
}
$secured_type = mysqli_escape_string($_GET['type']); // SQL Injection secure
INSERT INTO table(type) values($secured_type);
<?php
$type = '';
if(!empty($_GET['type']))
{
$type = $_GET['type']
}
?>