MySQL Db の基本的な検証およびエスケープ機能を実行できるオープン ソース ライブラリまたはフレームワークを知っていますか。
私は次の行に沿って何かを想定しています:
//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 が非推奨であることを知っています - それは面倒なコードの単なる例です)