phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

select from mysql db with 300 tables using a default prefix

Ich würde nach einer Klasse suchen, um eine einfache Abfrageabstraktion oder eine Art ORM-Bibliothek durchzuführen, die dies tut. Ein Beispiel würde so aussehen.

class Query {
    function from($tbl){
        return new Table($tbl);
    }
}
class Table {
    var $prefix = 'PBN_';
    var $tblname = '';

    function Table($name){
        $this->tblname = $this->prefix.$name;
    }
    function select($cols, $where = false, $order = false, $limit = false){
        $query = "SELECT {$cols} FROM {$this->tblname}";
        if($where) $query .= " WHERE ".$where; //add where
        if($order) $query .= " ORDER BY ".$order; //add order
        if($limit) $query .= " LIMIT ".$limit; //add limit
        return $query;
    }
}

$q = new Query;
$results = mysql_query($q->from('products')->select('*'));

Dies ist offensichtlich bei weitem nicht vollständig oder sicher. Nur ein Beispiel dafür, wie eine Abstraktionsklasse Ihr SQL beschleunigen und Ihre Präfixe für Sie erledigen kann.