PHP: Nasıl bir Zaten Open bağlantısı için bir MySQL link tanıtıcı alabilirim?

6 Cevap php

Eğer mysql_connect () ile MySQL bağlantısını açtığınızda, bir bağlantı tanıtıcısı döndürür. Ama ileride ne komut tekrar bağlantı tanıtıcısı almak isterseniz? (Örneğin:. Bir plug-in, yeni bir veritabanı bağlantısı açmak ve yine eski bir erişim ihtiyacı)

I mysql_connect () tarafından açılan son bağlantı için bir bağlantı tanıtıcısı dönmek için bir yol arıyorum. Bunu yapan bir işlevi var mı?

6 Cevap

Cevaplar için herkese teşekkürler.

Ben kendi bağlantı açılması sona erdi ve benim plug-in yapıldığında ana senaryonun kalanı beklediği veritabanını kullanabilirsiniz böylece, son satırı ilk bağlantıyı yeniden açar. Ben biliyorum, özensiz, ama bu durumda daha iyi bir seçenek var gibi görünmüyor. :/

Güncellemek :: Ben php.net bir özellik isteği olarak sunulan ettik. Link: http://bugs.php.net/bug.php?id=49400

Anti-Veeranna bir açıklama doğru olsa bile, orada is ne istediğinizi yapmak için bir çok düz ileri bir yol. Sizin için belgeleri okumak olsaydı mysql_connect(), bu fonksiyon false varsayılan bir 4 parametre, "new_link" sahip olduğunu öğrenmek istiyorum. Muhtemelen durumda aynı parametrelerle, tekrar () mysql_connect ararsanız, yeni bir bağlantı oluşturmak değil, ama bunun yerine eskisinin kaynak kimliğini dönecekti.

;) Her zaman

Hayır, yok. Eğer link belirleyicilerinde kendinizi kaydetmek zorunda. Kolayca yöntemleri erişebilirsiniz ve tekrar tekrar bir değişken olarak geçen hakkında endişelenmenize gerek yok, böylece bir sınıf özelliği olarak bağlantı tanıtıcısı tanımlayabilirsiniz.

Sen bir var senin kolu saklamak zorunda.

$link = mysql_connect($host, $login, $pass);

Ve yeni bir HTTP isteği önce komut boyunca $ bağlantıyı yeniden kullanabilirsiniz.

Siz diğer yanıtlar belirtildiği gibi bağlantı tanımlama bilgisini kendiniz saklamak ya da basitçe atlayabilirsiniz, mysql_ * fonksiyonlar mevcut kolu yeniden kullanabilirsiniz

mysql_query yardım şöyle açıklıyor:

resource mysql_query  ( string $query  [, resource $link_identifier  ] )

link_identifier

    The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed.

Eğer uygulama (ya da herhangi eklentileri, vb) diğer veritabanları için herhangi bir yeni bağlantı açarak değil tamamen emin olmadıkça, ama o yeniden davranışı kendim kullanmak olmaz.