Kod en aza indirmek için başka bir açıklamada birden fazla MySQL sorguları kullanmanın yararları nelerdir.
Nasıl, yürütmek almak ve PHP (ve tercihan PDO) kullanarak bir deyim gönderilen birden fazla MySQL sorgu sonuçlarını görüntülemek yok.
Ne olursa olsun, kullanmakta olduğunuz veritabanı, bu bir deyim birden fazla sorguları koymak için daha verimli olabilir. Eğer ayrı ayrı sorguları gerçekleştirmek, (aynı makine üzerinde ise süreçler arasında ya da en azından,), dönüş, sorguda geçmek, (autheticating dahil) ona bir bağlantı olsun bir ağ üzerinden veritabanına çağrı yapmak zorunda resultset ve her sorgu için bağlantı bırakın.
Bağlantı havuzu kullanmak bile, yine de gerekli olandan daha ileri geri fazla istek geçiyoruz.
Eğer birine iki sorguları birleştirmek Yani, örneğin, size ikinci sorgu için ileri geri çağırarak ekstra tüm kaydettiniz. Eğer birleştirmek daha fazla sorgular, sonra, daha verimli uygulama olabilir.
Onlar başlattığınızda başka Örneğin, birçok uygulamalar (örneğin DropDownLists gibi) listeleri doldurmak. Bu sorguları bir dizi olabilir. Bir çağrıda hepsini Sahne başlatma süresini hızlandırabilir.
mysql_query () birden sorguları desteklemez. Ancak, bazı geçici çözümler vardır:
http://www.dev-explorer.com/articles/multiple-mysql-queries
http://php.net/function.mysql-query
Ben biraz araştırma gece yapıyor ve bu konuya tökezledi. Yukarıdaki cevapların hiçbiri bu basit soruna kalıcı bir çözüm sağlamak.
OO Yaklaşımı kullanarak, multi_query () yöntemi kullanılarak tek bir bağlantıda birden fazla sorgu ifadeleri gerçekleştirebilirsiniz.
$db_connection->multi_query($query);
Sorguları iyi biçimli ve noktalı virgülle ayrılmış olmalı ->;
The PHP manual SEÇ verileri işlemek için nasıl hakkında daha fazla bilgi için bkz:
Eğer oturum değişkenleri ve geçici tablolar ile çalışmak gerektiğinde aynı çağrı üzerine birden fazla sorguları özellikle yararlıdır:
select somecol, @somevar := group_concat( distinct somecol2 separator '|')
from sometbl
where
somecol LIKE "fueh"
group by somecol;
select somecol2
from sometbl
where
somecol LIKE "nyan"
and
vc_wp regexp concat( '(', @somevar, ')' )
order by somecol;
Burada şartlı birden fazla sorgu birleştiren ve bir kerede hepsini yürütme bir örnek:
$fruit = 'banana';
$myfavoritefruits = array('apple', 'banana', 'grapes');
// the initial query that will always be run
$sql = "INSERT INTO fruits ( name ) VALUES ( '{$fruit}' );";
// if the fruit is one of my favorite fruits, perform another query
if (in_array($fruit, $myfavoritefruits)) {
$sql .= "INSERT INTO myfavoritefruits ( name ) VALUES ( '{$fruit}' );";
}
Sorgu şimdi okur:
INSERT INTO fruits ( name ) VALUES ( 'banana' );
INSERT INTO myfavoritefruites ( name ) VALUES ( 'banana' );
Şimdi, biz sadece yürütmek ve kesin:
$conn->query( $sql );
$conn = null;