我有一个程序,可以从大约200个带前缀的表中进行选择。例如PBN_products,PBN_address,PBN_others。除了将前缀添加到每个表的select语句之外,还可以将前缀定义为默认值,然后进行选择吗?
$prefix=GET['prefix']; mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD); mysql_select_db(DB_DATABASE); $sql = 'SELECT price, description, title, cost'. 'FROM products, address, others';
如何定义不包含在所有表中的前缀?我有200张桌子。
我将研究一个类来执行一些简单的查询抽象或执行此操作的某种ORM库。一个样本就是这样。
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('*'));
显然,这远远没有完成或安全。只是一个抽象类如何加速您的sql并为您提供前缀的示例。