Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara memeriksa apakah nama tabel valid di Propel?

Anda dapat mengurai schema.xml Anda dengan simplexml PHP.

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

Jangan lupa untuk memfilter input pengguna untuk $tableName , jika tidak, Anda dapat memasukkan kueri sendiri ke xpath. Untuk mendapatkan kinerja yang lebih baik, Anda harus menyimpan hasil Anda dalam cache.

Lebih baik lagi jika Anda membuat peta hash dengan semua tabel berdasarkan schema.xml Anda , tembolok peta hash ini dan periksa setiap saat.

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

Dalam hal ini, sebenarnya tidak perlu memfilter input pengguna.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memesan dengan String yang dimulai dengan Angka - ActiveRecord

  2. Apa yang dimaksud dengan `unsigned` di MySQL dan kapan menggunakannya?

  3. Bagaimana cara membandingkan input ke data mysql dengan php/sql?

  4. Pencocokan string kueri MySQL SELECT

  5. Django - menginstal kesalahan mysqlclient:mysqlclient 1.3.13 atau yang lebih baru diperlukan; kamu punya 0.9.3