2012-04-14 20 views
7

Örneğin birisi, örneğin, güncelleştirmeyi, eklediğinizde, sildiğinizde .. mysqli_stmt::close(); gibi kapatabilir misiniz? PHP elkitabını kontrol ettim ve close()'un aslında ne yaptığını anlamıyorum.Mysqli Bildiriminin `close()` yöntemi nedir?

Örnek:

$stmt = $dbh->prepare("SELECT `user_email` FROM `users` WHERE `user_email` = ? LIMIT 1"); 
$stmt->execute(array($email)); 
$stmt->close(); 
örnek olarak ben her bir sorgu için her execute() sonra işlem birden güncelleme sorguları olsaydı benim soru

Sonraki kısmı, ben işlem içinde yürütülmesi am edilir i should onları ayrı ayrı kapatır mısın? ... çünkü bir işlem her yürütme(); $stmt->close(); kullanmam gerektiğinden emin değil. ya da hepsinden sonra sadece bir $stmt->close(); kullanın?

+5

Ne 'close' yöntemi başvuruyorsunuz? Sadece benzer bir ismi olan 'PDOStatement :: closeCursor' var ... – Jon

+0

ilgili soru http://stackoverflow.com/questions/1046614/do-sql-connections-opened-with-pdo-in-php-have- kapanacak – Ozzy

+0

@Jon karıştı, aşağıdaki yorumlara cevap verdim, teşekkürler phplover – PHPLOVER

cevap

3

Mysqli close yöntemini kullanıyorsunuz gibi görünüyor. $ Stmt-> close() metodu basitçe sadece kapatır, önceki açılan veritabanı bağlantısını kapatır (http://www.php.net/manual/en/mysqli.close.php).

DÜZENLEME: Kullandığınız PDO ise, anlamıyorum, neden soru işaretleri yerine parametre adlarını kullanma olasılığından yararlanmıyorsunuz. Yani, pek çok kişi mysqli yerine PDO'yu tercih ediyor - sorguların/ifadelerin daha kapsamlı bir görünümünü elde edebilirsiniz.

+0

pdo için yeni ve $ stmt-> close() bir yerde gördüm ve hazırlanan deyimi kapatmak istediğini ve $ stmt = null bağlantıyı kapatacağını düşündüm, bu yüzden temelde sadece kullandığınızda $ stmt-> close() kullanıyorsunuz mysqli usul tarzı? (yani, orijinal yazımda verdiğim örnek ifadede $ stmt-> close() kullanmazdım)? bunun yerine $ stmt = null kullanırdım; bağlantıyı kapatmak için db? teşekkürler phplover – PHPLOVER

+2

Tam olarak değil. $ stmt-> close(), mysqli OOP stili içindir, mysql_close veya mysqli_close, mysql (i) prosedür stilidir. Ve evet, PDO'da veritabanına olan bağlantıyı kapatmak için, ifadeyi NULL olarak ayarlamanız yeterlidir. – hskrijelj

+0

Teşekkür ederim, şimdi anladım :) phplover – PHPLOVER

9

PDO için close() yöntemi yoktur, bunun yerine bir bağlantıyı kapatmak için veritabanı değişkenini null olarak ayarlamış olursunuz.

$stmt = null; 

İkinci sorunuzu yanıtlamak için, bağlantıyı yalnızca bir kez kapatmanız gerekir. Veritabanında yapmanız gereken tüm soruları yürüttükten sonra.

+0

Thannk, kendimi karıştırdım, iyi açıkladı, teşekkürler phplover – PHPLOVER