sql >> Databáze >  >> RDS >> Mysql

Jak zkontroluji, zda jsou názvy tabulek platné v Propel?

Schema.xml můžete analyzovat pomocí simplexml PHP.

$xml = simplexml_load_file('schema.xml');
$tableExists = 0 < count($xml->xpath("table[@phpName='$tableName']"));

Nezapomeňte filtrovat vstup uživatelů na $tableName , jinak je možné vložit vlastní dotaz do xpath. Chcete-li mít lepší výkon, měli byste své výsledky uložit do mezipaměti.

Ještě lepší by bylo, kdybyste vytvořili hash mapu se všemi tabulkami na základě vašeho schema.xml , uložte tuto hash mapu do mezipaměti a pokaždé ji porovnejte.

$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]);

V tomto případě není opravdu nutné filtrovat vstup uživatele.



  1. Připojte aplikace ODBC ve Windows k SugarCRM

  2. Oracle Mutating Trigger

  3. Vyplnit rozevírací seznam v závislosti na jiném výběru rozevíracího seznamu pomocí Ajaxu

  4. Automatická synchronizace ElasticSearch s SQL