způsob dotazování do databáze
- trollnet
- Člen | 8
Ahoj neťťáci,
po tom, co jsem si prolezl pár příkladů jsem narazil na 2 různé způsoby
dotazování u dibi a zajímal by mě váš názor,
případně jaký způsob preferujete
<?php
dibi::query("SELECT * FROM [$table] WHERE [id_predmet]=%i", $id)
$this->connection->select('*')->from($this->table)->where('id=%i', $id)
?>
taky jsem se koukal na doctrine, ale s tím zatím žádné zkušenosti nemám…
Editoval trollnet (30. 11. 2010 23:56)
- wdolek
- Člen | 331
trollnet: ja osobne pouzivam fluent rozhrani – tedy ten druhy priklad. Pekne se tim daji skladat SQL dotazy, napriklad:
$stmt = $db->select('*')->from('foo');
if ($_SERVER['PHP_AUTH_USER'] == 'radvis') {
$stmt->where('1 = 0');
}
$result = $stmt->execute();
Samozrejme to nelze pouzit vzdy a vsude – v pripade nejakych slozitych
brykuli clovek sahne po obycejnem query()
.
Taky stoji za zminku DibiDataSource
: https://phpfashion.com/…ak-jej-resit
- Tharos
- Člen | 1030
Doplním, že podmíněné dotazy se dají pohodlně zapsat i klasickým stylem, dokonce i za použití kratšího kódu. Dotaz od kolegy by vypadal:
$stmt = dibi::query('SELECT * FROM [foo] %if', $_SERVER['PHP_AUTH_USER'] === 'radvis', 'WHERE 1 = 0');
Klasický zápis je oproti fluentu údajně lépe optimalizovaný pro výkon, a tak kde je vyžadován výkon, lze doporučit spíše klasiku.
Editoval Tharos (1. 12. 2010 5:33)
- wdolek
- Člen | 331
Tharos napsal(a):
Doplním, že podmíněné dotazy se dají pohodlně zapsat i klasickým stylem, dokonce i za použití kratšího kódu. Dotaz od kolegy by vypadal:
Zajiste :) moje ukazka je jen ukazka. Jakmile clovek zacne v podmince joinovat, fluenti zapis je prehlednejsi (imho). Nicmene… nekdo ma rad holky, jiny zase vdolky :D