Son birkaç gün içinde mysqli
'u kullanan ancak yanıtların $stmt->execute()
ve $db->query()
arasındaki farkı tanımadığı birkaç soru gördüm.PHP'nin mysqli veri erişim fonksiyonlarını karıştırmak mı?
Anladığım kadarıyla, mysqli
adresindeki sonuçlara erişmek için iki farklı model vardır. Alternatif olarak
$result_set = $db->query("SAFE SQL QUERY HERE");
while ($row = $result_set->fetch_assoc()) {
# do something with $row['fieldname'];
}
:
Bu, bir column => value
eşlemeler içeren bir dizi ile (ya bir düz dizi) almak için programcı ham SQL kullanır ve SQL enjeksiyon saldırılarını engellemek için giriş kaçmak için, programcı gerektiren izin veren, fakat almak için mysqli
ile herhangi bir yolu yoktur -
$stmt = $db-prepare("SQL QUERY WITH ? PLACEHOLDERS");
$stmt->bind_param("s", $input_variable);
$stmt->execute();
$stmt->bind_results($output_col1, $output_col2);
while ($stmt->fetch()) {
# do something with $output_col1 and $output_col2
}
sorum şu: Eğer parametreleri ve sonuçların güzel bağlama izin veren yapabiliriz, ancak (AFAIK) size basit dizi sonucunda her türlü veremez İlk modelde gösterilen basit dizi çıkışı, ancak hala ikinci modele göre güvenli bir şekilde giriş parametrelerini kullanırken?
Bunu yapmak için yine de bulamıyorum (bunun yerine PDO
'u kullanma!).
Olafur - Ben senin yazım değişikliği geri alındı ettik. "tanınmış", standart İngilizce yazımdır. – Alnitak