Używam często MySQL, ale zawsze zastanawiałem się dokładnie, jak to działa - kiedy uzyskuję pozytywny wynik, gdzie dokładnie są przechowywane dane? Na przykład, piszę tak:Jak dokładnie działają zapytania bazy danych PHP/MySQL?
$sql = "SELECT * FROM TABLE";
$result = mysql_query($sql);
while ($row = mysql_fetch_object($result)) {
echo $row->column_name;
}
Gdy wynik jest zwracany, jestem przy założeniu, że trzyma wszystkie wyniki danych, czy też powrócić we fragmencie i zwraca tylko gdzie ona jest proszony o jak $ row- > column_name?
Czy rzeczywiście zwraca każdy pojedynczy wiersz danych, nawet jeśli chcesz uzyskać tylko jedną kolumnę w wyniku $?
Ponadto, jeśli będę używać stronicowania przy użyciu LIMIT, czy ma on TAK oryginalny (stary) wynik, nawet jeśli baza danych jest aktualizowana?
Mam nigdy nie zrozumiał zbyt wiele o tym, jak działają sparametryzowane zapytania. Czy jest to normalny sposób wykonania sparametryzowanej kwerendy, aby wysłać 'SELECT * FROM table WHERE a =: param' do silnika bazy danych wraz z parametrami? Myślałem, że ': param' zostanie zastąpione wartością po stronie klienta. – jnylen
Sparametryzowane zapytanie (ewentualnie przekształcone z biblioteki klienta do tego, co baza rozumie) wraz z parametrem są wysyłane do bazy danych. – cletus