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.