Oznámení
Omlouváme se, provoz fóra byl ukončen
DibiConnection – proč se při překladu dotazu pojit k databázi?
Upozornění: Tohle vlákno je hodně staré.
před 8 lety
- maarlin
- Člen | 207
Proč se dibi samovolně při překladu dotazu – např. takto:
$query = (string) $this->connection->select('*')->from('articles');
pokouší připojit k databázi?
To snad z principu DB layeru není v tento moment potřeba, nebo se mýlím? Překladem na string bych očekával, že dostanu prostě syntakticky přeložený dotaz a k jeho sestavení imho opravdu není potřeba spojení do databáze.
Jde mi konkrétně o tato dvě místa (dvě metody, které volá
__toString()
) v DibiConnection:
/**
* Returns the driver and connects to a database in lazy mode.
* @return IDibiDriver
*/
final public function getDriver()
{
$this->connected || $this->connect(); // Here
return $this->driver;
}
/**
* Generates SQL query.
* @param array
* @return string
*/
private function translateArgs($args)
{
$this->connected || $this->connect(); // Here
return $this->translator->translate($args);
}
před 8 lety
- Milo
- Nette Core | 1119
Myslím, že jedním z důvodů je mysql_real_escape_string()
v MySQL driveru.