我使用Zend的insert()
功能的嵌入式数据库中的表中的记录。例如, 从数据库模型对象,我打电话Zend_Db_Table's insert()
函数并传递输入数据作为数组 - $data
,即验证/调用插入之前验证数据()
$this->insert($data);
$data
是一个数组。的$data
内容是混合数据类型-integer,钱,文本等
的为了验证传入$data
阵列,我写的函数,verifyData($data)
。
private function verifyData(&$data) {
//Trim whitespace characters from incoming data.
foreach($data as $key => $val)
{
$data[$key] = trim($val);
if(empty($data[$key])) {
unset($data[$key]);
}
}
//Checking for not null table columns
if(empty($data['id']) || empty($data['name']) || empty($data['age'])) {
error_log("One of the required fields is missing");
return false;
}
else {
return true;
}
}
如上,写功能:
- 修剪传入数据和从$数据阵列取消设置的任何字段,如果它们是空的。
- 然后所需字段的存在这个功能检查,并且如果任何所需的字段缺失,则返回false。在这个特定的定义中,id,name和age是必需的。但是,也可能有其他非必填字段,我想验证。例如:$数据[“薪水”]
我需要在/添加以下验证上述功能可以任何其他方式帮助/建议:
- 我要检查,如果每个元素的数据类型的数组与我们所期望的/在插入数据之前将其转换为特定的数据类型。
- 我想转换/处理传入数据,以防止任何SQL注入威胁。
处理数据类型检查的一种方法是循环传入数据数组并将特定列值转换为其数据类型并进行验证。但我想知道是否有任何有效/标准的方法来实现上述两点。
一个示例场景,例如在我的网页表单,在添加新的人分贝,我需要输入姓名,年龄和薪水外面的姓名和年龄是强制性的。年龄和工资只能作为整数输入。我想在PHP级别实现这个限制,我使用Zend Framework。
任何帮助/建议将非常感激。
你在哪里卡住了?你有什么尝试? – CodeZombie
如果您想要就如何调整现有功能提出建议,至少您必须显示该功能的代码。 – jeroen
ZombieHunter和Jeroen:对不起,如果它不明确。我现在更新了我的问题。谢谢 –