PHP Conference Nagoya 2025

mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_querySonuç kümesi tamponlanmayan ve alınmayan bir SQL sorgusu gönderir

Uyarı

Bu eklentinin kullanımı PHP 5.5.0 itibariyle önerilmemekte olup PHP 7.0.0'da kaldırılmıştır. Bu eklentinin yerine ya mysqli ya da PDO_MySQL eklentisi kullanılmalıdır. MySQL API seçerken MySQL API'ye Bakış belgesi yardımcı olabilir. Bu işlevin yerine kullanılabilecekler:

Açıklama

mysql_unbuffered_query(string $sorgu, resource $bağlantı_belirteci = null): resource

mysql_unbuffered_query() işlevi mysql_query() işlevinin yaptığı gibi sonuç kümesini tamponlamadan ve içindekileri almamak üzere sorgu SQL sorgusunu MySQL'e gönderir. Başka bir deyişle, büyük sonuç kümeleri üreten SQL sorgularından kaynaklanan bellek tüketimini azaltır. Yani, ilk satırı alır almaz sonuç kümesiyle çalışmaya başlayabilirsiniz; SQL sorusunun tamamlanmasını beklemeniz gerekmez.Çok sayıda veritabanı bağlantısı kullanıyorsanız belirtilmesi isteğe bağlı olan bağlantı_belirteci bağımsız değişkenini de belirtmeniz gerekir.

Bağımsız Değişkenler

sorgu

Bir SQL sorgusu.

Sorgunun içerdiği verinin gerektiği gibi öncelenmesi gerekir.

bağlantı_belirteci

MySQL bağlantısı. Eğer bağlantı belirteci belirtilmemişse mysql_connect() tarafından açılan son bağlantı kullanılmaya çalışılır. Eğer böyle bir bağlantı yoksa mysql_connect() bağımsız değişkensiz olarak çağrılmış gibi bir bağlantı oluşturmaya çalışır. Hiçbir bağlantı yoksa ve yenisi de kurulamazsa E_WARNING seviyesinde bir hata üretilir.

Dönen Değerler

SELECT, SHOW, DESCRIBE ve EXPLAIN deyimleri için mysql_unbuffered_query() başarı durumunda bir özkaynak aksi takdirde false döndürür.

UPDATE, DELETE, DROP gibi diğer SQL deyimi türlerinde, mysql_unbuffered_query() başarı durumunda true aksi takdirde false döndürür.

Notlar

Bilginize:

mysql_unbuffered_query() işlevinin getirilerinin yanında götürüleri de vardır: mysql_unbuffered_query() işlevinden dönen bir sonuç kümesi üzerinde tüm satırlar alınana kadar mysql_num_rows() ve mysql_data_seek() işlevlerini kullanamazsınız. Ayrıca, MySQL'e yeni bir SQL sorgusu göndermeden önce aynı bağlantı_belirtecini kullanarak tamponsuz bir SQL sorgusuyla sonuç kümesinin tamamını almak zorundasınız.

Ayrıca Bakınız

add a note

User Contributed Notes 3 notes

up
3
frappyjohn at dos2linux dot org
21 years ago
Don't let the two hands confuse you, these are both advantages (they should really be on the same hand):

On the one hand, this saves a considerable amount of memory with SQL queries that produce large result sets.

On the other hand, you can start working on the result set immediately ...
up
3
crazyone at crazycoders dot net
16 years ago
You are NOT required to read all rows from the resultset when using unbuffered query, you may opt out at any time and use mysql_free_result. Imagine looking at 1 million row when the first 50 suffice? Just free the result and you are good to go again.
up
0
post at jfl dot dk
21 years ago
If using optimized MyISAM tables I guess there is a big advantage with this function as it is possible to do selects and inserts on the same time as long as no rows in the table gets updated.
To Top