Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मैं कैसे जांचूं कि प्रोपेल में टेबल नाम मान्य हैं या नहीं?

आप 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]);

इस मामले में उपयोगकर्ता के इनपुट को फ़िल्टर करना वास्तव में आवश्यक नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में [a-zA-Z] के अलावा अन्य वर्णों वाली सभी पंक्तियों को कैसे प्राप्त करें

  2. MySQL के साथ JDBC वास्तव में धीमा है, पता नहीं क्यों

  3. MySQL या MariaDB डेटाबेस से कैसे कनेक्ट करें

  4. मैं अपने इनपुट से इमोजी वर्णों को कैसे फ़िल्टर कर सकता हूं ताकि मैं MySQL <5.5 में सहेज सकूं?

  5. Async/प्रतीक्षा फ़ंक्शन और npm-mysql के साथ परिणामों के बजाय क्वेरी ऑब्जेक्ट प्राप्त करना