Merhaba Arkadaşlar
PHP PDO da prepare verileri çekemiyorum, query ile verileri çekebiliyorum, kodlarda yaptığım her hangi bir hatamı var, mesela ikisindede Function dosyasında global $db; yi kullanmasam veriler gelmiyor, prepare ile query arasındaki fark hangisi daha güvenli, bu konuda yardımcı olabilirmisiniz
bu şekilde verileri çekebiliyorum
$veri=$db->query("Select * From bilgiler");
bu şekilde verileri çekemiyorum
$veri=$db->prepare("Select * From bilgiler");
PDO global, prepare ve query hatası
4
●104
- 25-10-2020, 12:47:02prepare daha güvenli.
$db->prepare("Select * From bilgiler");
bu yanlış bir prepare kullanımı.
bkz:https://www.php.net/manual/tr/pdo.prepare.php - 25-10-2020, 12:52:30prepare edildiğinde fonksiyonu execute etmeniz gerekir
$p = $db->prepare("Select * From bilgiler");
$p->execute();
sistem içinde dışarıdan veri almaksızın parametre gönderilerek veri alımı
$p = $db->prepare("Select * From bilgiler WHERE username = :un");
$p->execute(Array("un"=>"test"));
dışarıdan gelen verileri güvenli içeri almak ise
$username = $_GET["username"];
$p = $db->prepare("Select * From bilgiler WHERE username = :un");
$p->bindParam(':un', $username, PDO::PARAM_STR );
$p->execute();
PDO::PARAM_STR,PDO::PARAM_INT gibi parametrelerle alınacak veriyi spesifik hale getirip güvenliği sınırlayabilirsiniz. - 25-10-2020, 13:00:13fonksiyon içerisinde kullanılan değişkenler o scope içerisinde tanımlı olmak zorundadır.emlak21 adlı üyeden alıntı: mesajı görüntüle
Sizin herhangi bir yerde tanımlamış olduğunuz değişken belli bir scope aralığı taşımıyor (yani global olarak erişilebilir oluyor) . Değişkeni o fonksiyon içerisinde kullanabilmek içinse değişkeni yükseltmek gerekiyor bunuda ister $GLOBALS["db"] ister global $db ile olarak o fonksiyonun içerisinde kullanılabilir kılıyoruz.