Вам известна какая-либо библиотека с открытым исходным кодом или инфраструктура, которая может выполнять некоторые базовые функции проверки и экранирования для базы данных MySQL.
Я предполагаю что-то вроде:
//give it something to perform the quote() quoteInto() methods
$lib->setSanitizor($MyZend_DBAdaptor);
//tell it structure of the table - colnames/coltypes/ etc
$lib->setTableDescription($tableDescArray);
//use it to validate and escape according to coltype
foreach ($prospectiveData as $colName => $rawValue)
if ( $lib->isValid($colName, $rawValue))
{
//add it to the set clause
$setValuesArray[$lib->escapeIdentifier($colName)] = $lib->getEscapedValue($colName,$rawValue);
}
else {
throw new Exception($lib->getErrorMessage());
}
и т.д ...
Я изучил - Zend_Db_Table (который знает об описании таблицы) и - Zend_Db_Adaptor (который знает, как экранировать / санировать значения в зависимости от TYPE)
, но хотя онимогут дезинфицировать, они автоматически не делают каких-либо умных проверок перед обновлениями / вставками
Кто-нибудь знает хорошую библиотеку PHP для предварительной проверки такого рода проверки, которую я мог бы использовать вместо того, чтобы писать свою собственную?
Я предполагаю много такого рода вещей:
...
elseif (eregi('^INT|^INTEGER',$dataset_element_arr[col_type]))
{
$datatype='int';
if (eregi('unsigned',$dataset_element_arr[col_type]))
{
$int_max_val=4294967296;
$int_min_val=0;
}
else {
$int_max_val=2147483647;
$int_min_val=-2147483648;
}
}
(ps Я знаю, что eregi устарела - это всего лишь пример трудоемкого кода)