/** * Set database connection string. Change table name and add extra cols if necessary. * * @param string $dsn * @param string $table (default = category) * @param map $extra_cols */ public function setDSN($dsn, $table = 'category', $extra_cols = []) { $db = new Database(); $db->setDSN($dsn); $table = ADatabase::escape_name($table); $db->setQuery('drop', "DROP TABLE IF EXISTS {$table}"); $query = <<<END CREATE TABLE {$table} ( id int NOT NULL AUTO_INCREMENT, pid int, name varchar(255) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (pid) REFERENCES {$table}(id) ON DELETE CASCADE ON UPDATE CASCADE ); END; $db->setQuery('create', $query); $db->setQuery('insert', "INSERT INTO {$table} (pid, name) VALUES ('{:=pid}', '{:=name}')"); $db->setQuery('select_name_pid', "SELECT * FROM {$table} WHERE name='{:=name}' AND pid='{:=pid}'"); $db->setQuery('select_id', "SELECT * FROM {$table} WHERE id='{:=id}'"); }
/** * SQL Escape trim($name). * * @tok {sql_name:}a b{:sql_name} -> `a b` * @see ADatabase::escape_name * @param string $name * @return string */ public function tok_sql_name($name) { return ADatabase::escape_name(trim($name)); }