Ben kullandım son birkaç gün içinde bir kaç soru gördüm mysqli ama cevaplar $stmt->execute() ve $db->query() arasındaki farkı fark yok görünüyor nerede .
Anladığım kadarıyla, mysqli sonuçları erişmek için iki farklı model vardır.
Bu bir ham SQL kullanır ve SQL enjeksiyon saldırıları önlemek için giriş kaçmak için programcı gerektirir, ama programcı column => value eşleşmelerini içeren bir ilişkisel dizi (veya düz bir dizi) almak için izin verir:
$result_set = $db->query("SAFE SQL QUERY HERE");
while ($row = $result_set->fetch_assoc()) {
# do something with $row['fieldname'];
}
Alternatif olarak, parametreleri ve sonuçları güzel bağlama sağlayan bu, yapabilir, ama (AFAIK) size basit dizi sonucunda her türlü veremez:
$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
}
Benim soru - ilk desen gösterilen basit dizi çıktısı almak için mysqli ile herhangi bir yolu yoktur, ancak yine de ikinci desen başı olarak güvenli bir şekilde bağlı giriş parametrelerini kullanarak ederken?
Ben (yerine PDO kullanmaktan başka!) Bunu zaten bulamıyorum.