PHP mysql_unbuffered_query()-funktio
Määrittely ja käyttö
mysql_unbuffered_query()-funktio lähettää MySQL:lle yhden SQL-kysynnän (ei hanki/tallenna tuloksia).
Syntaksi
mysql_unbuffered_query(query,connection)
Parametrit | Kuvaus |
---|---|
query | Välttämätön. Määrittää lähetettävän SQL-kysynnän. Huomautus: kyselymerkkijono ei saa päättyä pistoon. |
connection | Valinnainen. Määrittää SQL-yhteyden tunnisteen. Jos sitä ei määritetä, käytetään edellistä avattua yhteyttä. |
Selitys
mysql_unbuffered_query() lähettää MySQL:lle yhden SQL-kysynnän query, mutta ei mysql_query() niin automaattisesti hankita ja tallentaa tuloresurssit. Yhtäältä tämä säästää huomattavasti muistia suurten tuloresurssien käsittelyssä. Toisaalta voidaan käsitellä tuloresursseja heti ensimmäisen rivin jälkeen, ilman että odotetaan koko SQL-lauseen suorittamista.
Kun käytetään useita tietokantayhteyksiä, on määritettävä valinnainen parametri connection。
Vinkit ja huomiot
Huomautus:mysql_unbuffered_query() etujen hinnalla on kustannuksia: mysql_unbuffered_query() palauttaman tuloresurssin päällä ei voi käyttää mysql_num_rows() ja mysql_data_seek()。Lisäksi on poistettava kaikki varastoidut SQL-kyselyjen tuottamat tulorivit ennen kuin lähettää uusi SQL-kysely MySQL:lle.
Esimerkki
<?php $con = mysql_connect("localhost","mysql_user","mysql_pwd"); if (!$con) { die('Ei voitu yhdistää: ' . mysql_error()); } // Suuri kysely $sql = "SELECT * FROM Person"; mysql_unbuffered_query($sql,$con); // Aloita datan käsittely... mysql_close($con); ?>