验证字符串以确保它在特定范围内


Validate string to ensure it's between a specific range

我已经得到了一系列存在于MySQL表中的设备id,具有以下格式

a01
a02
a03
b01
b03
b04
etc...

我正在使用$_GET从查询字符串中抓取此值,然后查询DB。

我该如何验证它,以确保它适合现有id的范围?

由于您使用MySQL,您可以编写查询,以便它检查给定的设备ID是否在表中的设备ID内。既然你写了$_GET,我假设你在PHP中工作。

我假设你正在使用的桌子被称为"设备"。"

$equipment_id = mysql_real_escape_string($_GET['equipment_id']);
$query = 'SELECT COUNT(equipment_id) FROM equipment WHERE equipment_id = '''.$equipment_id.'''';
$result = mysql_query($query);  
$ary = mysql_fetch_array($result);
if ($ary[0] == '0') { 
    // equipment id not in table.
} else { 
    // equipment id in table.
}

你会注意到我使用mysql_real_escape_string(…)-这将转义MySQL特殊字符,以防止恶意的个人提交SQL,可能会截断你的调用并发送不同的请求。

下面是mysql真实转义字符串的文档,如果你感兴趣:http://php.net/manual/en/function.mysql-real-escape-string.php