PHPのsimplexmlを使用してschema.xmlを解析できます。
$xml = simplexml_load_file('schema.xml');
$tableExists = 0 < count($xml->xpath("table[@phpName='$tableName']"));
$tableName
に対するユーザーの入力をフィルタリングすることを忘れないでください それ以外の場合は、独自のクエリをxpathに挿入することができます。パフォーマンスを向上させるには、結果をキャッシュする必要があります。
schema.xml
に基づいて、すべてのテーブルを含むハッシュマップを作成するとさらに良いでしょう。 、このハッシュマップをキャッシュし、毎回これと照合します。
$hashMap = $foo->getCache('tables');
if (!$hashMap) {
$xml = simplexml_load_file('schema.xml');
$tables = $xml->xpath("table");
foreach ($tables as $table) {
$hashMap[$table['phpName']] = true;
}
$foo->setCache('tables', $hashMap);
}
$tableExists = isset($hashMap[$tableName]);
この場合、ユーザーの入力をフィルタリングする必要はありません。