@Selçuk üstad izninizle verdiğiniz cevabı bir tık daha ileriye götürmek istiyorum. PDO'nun bence en büyük avantajlarından biri Prepared stament(hazır deyimler) olayı. Hazır deyimler yazdığımız sorguların güvenliği ve performansı açısından çok önemli. Hazır deyimler kullanarak, mysql_escape_string gibi fonksiyonlardan kurtuluyoruz çünkü bu şekilde sorguya dışarıdan yapılan müdahaleler engellenmiş oluyor. Bunun yanında güzel bir yanı da bizi tırnak olayından kurtarmış oluyor. PDO ile haşır neşir olmaya başlayan arkadaşlara kesinlikle hazır deyimleri kullanmalarını öneririm. Soru sahibi arkadaşın verdiği kodun pdo ile hazır deyimler kullanarak uyarlanmış hali de şu şekildedir ;
<?php
/* Ben DB islemini örnekleme acisindan ekledim cünkü sizin PDO klasina verdiginiz degiskeni bilmiyorum. */
$host = "localhost";
$database = "test";
$user = "root";
$password = "";
try {
$selco = new PDO("mysql:host={$host};dbname={$database}", $user, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$selco->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
} catch (PDOException $e) {
return 'Hay Allah!, Connection Error: '. $e->getMessage();
}
$getUsers = $selco->prepare("SELECT * FROM uyeler WHERE uye_kadi = ? && uye_sifre = ?");
$getUsers->bindParam(1,$kadi);
$getUsers->bindParam(2,$sifre);
$getUsers->execute();
if ($getUsers->rowCount() > 0)
{
$row = $getUsers->fetch(PDO::FETCH_ASSOC);
$session = array(
"girisyap" => true,
"uye_id" => $row["uye_id"],
"uye_kadi" => $row["uye_kadi"],
"uye_ad_soyad" => $row["uye_ad_soyad"],
"uye_rutbe" => $row["uye_rutbe"]
);
session_olustur($session);
header("Refresh:0;");
} else {
echo "<font color='red'>Böyle Bir Yönetici Yoktur.</font>";
}
?>Prepared Statements(Hazır Deyimler) konusunu daha iyi kavrayabilmek için güzel bir Türkçe makale buldum bu konuda bilgi sahibi olmayan arkadaşlar bu makaleyi inceleyerek konuyu daha iyi kavrayabilirler.
http://www.superbug.co/2013/08/prepare-methodunu-kullanarak-sql.html