我使用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:對不起,如果它不明確。我現在更新了我的問題。謝謝 –