Ne zaman bir MySQL Query aslında PHP çalıştırıyor?

4 Cevap php

Bu gerçekten basit bir soru gibi geliyor, ama PHP için yeni. Ben böyle bir açıklama varsa:

$r =& $db->query("insert into table (col1, col2) values (10, 20)");

Ben hala çalıştırmak için, ya da ben başvurmak zaman idam olsun demek var mı? Ben mantıklı ben fetchrow çağırdığınızda çalıştırmak gibi görünüyor bir seçme sorgusu var, başka bir durum var, ama ben kopyalama am kod yürütme veya getirilemedi aramıyor. Ben bekleniyor olurdu, bu yüzden ben bunu alamadım sadece olup olmadığını söylemek, ya da deyimi yürütme eksik sorun olduğunu olamaz. Ayrıca kayıt eklemek değil, ancak ben bulabilirim bir hata atmak değil.

Ayrıca, ben =& gösterimi ile biraz karıştı. Ben google baktım ve birkaç bunun bahseder, ama ben hala net değilim bulundu.

Teşekkürler.

4 Cevap

Eğer query() çağırdığınızda idam edilecek

=& notasyonu bu işlevi kaynak nesnesine bir başvuru döndürmek yapmak için kullanılan ... kullanılmıyor. Ama PHP (> 5.0, bence) güncel sürümleri her zaman geçmesi (ve dönüş) nesneleri referans ile, bu yüzden artık gerçekten bir şey değişmez.

Eğer query işlevini çağırdıklarında sorgu idam olur. Eğer sabit gereken kod bahsederken, ne bozuldu, ve "ihtiyaç [s] sabit olması" bu kod benziyor ne (kim? göre) nedir?

& çeşitli bağlamlarda kullanılabilir ve bu vasıtalar by reference. Buradan okumaya başlamalıdır:

(Eğer $db ne olduğu hakkında biraz ipucu verebilir rağmen) sonuç kümesi muhtemelen bir nesnedir ve artık bu varsayılan davranışı beri referans tarafından atanan gereken nesneleri çünkü kodu büyük olasılıkla gereksiz pasajı. PHP öğrenme ise, eski öğreticiler ile dikkatli olun.

$ Db-> sorgu bir sınıf tarafından bulunan bir yöntemdir, bu bağlam üzerinden php fonksiyonel değil. Bu senin bu örnek ADODB veya türünün herhangi gibi bir veritabanı soyutlama katmanı kullanan büyük bir uygulamadan geldiğini mümkündür.

Bu durumda sorgu, örneğin, bir işlem içinde bulunan olabilir ve kısa sürede () sorgu çağırmak gibi idam olmaz, çünkü, o zaman, o db soyutlama katmanı özel belgelerine bakın olabilir;

Sorgu hemen basit bir mysql fonksiyonu ile test denemek yürütülür emin olmak için:

mysql_query("SHOW TABLES");