Nasıl odbc (veya mysql) kaynakları php çalışır?

2 Cevap php

Bunu gibi bir sorgu çalıştırdığınızda:

$query = "SELECT * FROM table";
$result = odbc_exec($dbh, $query);
while ($row = odbc_fetch_array($result)) {
    print_r($row);
}

Kaynak sunucu php çalıştıran var verilere $ sonuç noktasında saklanır mı? Veya veritabanındaki verilere işaret mi? While döngüsü bu kadar şey yapıyor gibi başka bir deyişle, PHP DB konuşurken her tekrarında veya uygulama tarafında bazı kaynaklardan bu $ satır çekiyor?

Bu benim için bir mattering nerede ben PHP ile ODBC kullanarak VPN üzerinden konuşuyorum bir veritabanı var. Büyük duraklar while döngüsü sırasında oluyor nerede bu geçen hafta garip bir şey oldu. Yani yineleme arasında, komut saniye ve dakika kadar yürütme durur. Bu durumda nerede tamamen rasgele gibi görünüyor. Ben her tekrarında VPN üzerinden sunucuya konuşmak gerekiyor ve belki bağlantı lapa lapa ya da ben merak ediyorum bir şey benim ODBC sürücüsü (freetds) ile yanlış gitti eğer.

2 Cevap

mysql_query ve odbc_exec hem bir kaynak dönmek (php.net den alıntı) hangi "bir dış kaynak için bir başvuru tutarak, özel bir değişkendir." Bu sunucu Ama emin değilim, veritabanı sunucusu ile her tekrarında konuşuyor göstermektedir.

Ancak, biz burada bahsediyoruz 2 bağlantıları vardır. İlk PHP sunucu ile bağlantı olmak ve ikinci bir PHP sunucusu ve veritabanı sunucusu arasındaki bağlantı olmak. Her iki sunucuları hızlı bir bağlantınız varsa, karşılaştığınız garip davranış VPN ile ilgisi olmayabilir.

Kaynak dış kaynak ile etkileşim için PHP tarafından kullanılan iç veri yapısını tanımlar.

Mysql_query (tarafından döndürülen kaynak) durumunda, bu veri yapısı sorgu tarafından döndürülen satır içerecektir (ve tüm verilerin iade edilmiş veya conenction başarısız kadar dönmeyecek). Ancak bu davranış MySQL özgü - açıkça istemci tarafından talep edilmeden önce DBMS veri döndürmek gereği yoktur.

Kurulumunuzda gecikme sürü neden bazı garip bir sorun varsa, o zaman sadece bariz çözüm daha sonra bir bütün olarak aither batched, PHP kodu onları teslim veya veritabanı tarafında sorgu sonuçlarını derlemek olacaktır (Webcoder düşünüyorum) .

C.