Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để kiểm tra xem tên bảng có hợp lệ trong Propel không?

Bạn có thể phân tích cú pháp schema.xml của mình bằng simplexml của PHP.

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

Đừng quên lọc thông tin đầu vào của người dùng cho $tableName , nếu không, bạn có thể đưa truy vấn của riêng mình vào xpath. Để có hiệu suất tốt hơn, bạn nên lưu kết quả vào bộ nhớ cache.

Sẽ tốt hơn nếu bạn tạo một bản đồ băm với tất cả các bảng dựa trên schema.xml của bạn , lưu vào bộ nhớ cache bản đồ băm này và kiểm tra lại điều này mọi lúc.

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

Trong trường hợp này, không thực sự cần thiết để lọc thông tin đầu vào của người dùng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận id tài nguyên # 3 Lỗi trong MySql

  2. Chuyển đổi ngày mySQL thành ngày Javascript

  3. mysql cho python 2. 7 cho biết không tìm thấy Python v2.7

  4. Lưu trữ các giá trị thập lục phân dưới dạng nhị phân trong MySQL

  5. MySQL - SELECT ... WHERE id IN (..) - đúng thứ tự