PHP Mysqli fetch_assoc

2 Cevap php

PHP MySQLi özelliği harika.

Hazırlanan Tablolar bir sorgu parametreleri enjekte için mükemmeldir.

Eğer İfadeleri kullanmak Ancak, bu artık fetch_assoc özelliğe erişiminiz yok gibi görünüyor. Elle tüm sonuçları bağlamak zorunda. Bu benim SQL sorgusu tüm alanları listelemek için var demek, o zaman ben (bind_result kullanarak) sonuçlarını alırken önceden tüm değişkenleri listelemek gerekir. Bu çok can sıkıcı ve zaman israf olabilir.

Bir alternatif var mı?

Teşekkürler

2 Cevap

MySQLi bu ile başa çıkmak için yöntemler sağlamaz, result_metadata fonksiyonuna bir göz var.

Ben sorunsuz parameterised MySQLi sorguları izin vermek için bir sınıf yazdım - Bir indirme ve temel kullanım bilgileri burada mevcuttur: http://www.robpoyntz.com/blog/?p=191

Evet, PDO denir ve genellikle MySQLi tercih edilir. Bu normal getirme seçenekleri ile ifadeleri sunuyor ve açıkça tüm parametreleri bağlamak için sizi zorlamaz. Tipik bir sorgu aşağıdaki gibi görünebilir:

$stmt = $db->prepare("SELECT * FROM foo WHERE a = ?");
$stmt->execute(array($a));

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

PDO çok esnektir, bu yüzden aynı zamanda başka şekillerde de kullanılabilir. Kılavuzda büyük bir çok örnek var. Bir göz atın!