4531
WM Aracı
Anonim Üyelik
-
Üyelik
13.03.2012
-
Yaş/Cinsiyet
- /
-
Meslek
-
Konum
-
Ad Soyad
** **
-
Mesajlar
996
-
Beğeniler
210 / 211
-
Ticaret
3, (%100)
Merhaba arkadaşlar, nerede okuduysam yavaş yavaş PDO'ya geçme zamanımın geldiğini düşünmeye başladım ve bu yüzden bugün bir bakayım dedim. Ancak bağlantı yapmayı başardığım halde mysql veritabanından veri çekemedim.
Önceden aşağıda ki kodlar ile işlerimi halleder veriyi çekerdim.
$veri = mysql_connect("localhost","root","") or die("Ana bilgisayar bağlantısı başarısızdır.");
$baglanti = mysql_select_db("db",$veri) or die("Veritabanı bağlantısı başarısızdır.");
?>
//----- Fonksiyon 3
function ornek(){
$cek = mysql_query("Select id, adres, site_adres from ayarlar");
$veri = mysql_fetch_assoc($cek);
echo $veri["site_adres"]."/".$veri["adres"];
}
?>
Ancak şimdi aynı şekilde bu veri çekme işlemini PDO ile yapmaya çalışıyorum fakat bir türlü düzgün anlatım bulamadım. Yardımlarınızı bekliyorum.
-
Üyelik
13.09.2012
-
Yaş/Cinsiyet
30 / E
-
Meslek
Mühendis
-
Konum
Mersin
-
Ad Soyad
E** K**
-
Mesajlar
526
-
Beğeniler
146 / 145
-
Ticaret
0, (%0)
En çok beğendiğim bir ders vardı.Tayfun erbilen anlatmıştı.Normal mysql ile pdo arasındaki kod farklıklarını anlatıyordu.Hatta linkinide veriyim.
http://www.prototurk.com/video/mysql_-vs-pdo/394
Buradaki dersi incelerseniz sizin kodlamanız aşağıdaki gibi olmalı
try {
$db = new PDO("mysql:host=localhost;dbname=test;charset=utf8", "root", "123456");
} catch ( PDOException $e ){
print $e->getMessage();
}
?>
//----- Fonksiyon 3
function ornek(){
$cek = mysql_query("Select id, adres, site_adres from ayarlar");
$query = $db->query("Select id, adres, site_adres from ayarlar", PDO::FETCH_ASSOC);
if ( $query->rowCount() ){
foreach( $query as $row ){
print $row['kulanici_adi']."
";
}
}
}
?>
http://www.emrekarakaya.com.tr/
-
Üyelik
14.09.2012
-
Yaş/Cinsiyet
39 / E
-
Meslek
Yazılım geliştirme
-
Konum
Ankara
-
Ad Soyad
M** A**
-
Mesajlar
217
-
Beğeniler
55 / 48
-
Ticaret
0, (%0)
Mantık basit. Sınıfı başlatıyorsun, sonra sınıf üzerinde işlem yapıyorsun. Fonksiyonlar birbirinden bağımsızken, PDO birbirine bağımlı fonksiyonlardan oluşuyor.
mysql_xxx(query) yerine $pdo->xxx(query) diyorsun oluyor bitiyor.
Kodunu çevireyim ben, ama döküman için google'da arama yaparsan "pdo kullanımı", "pdo örnekleri" falan filan daha genişini bulursun
try {
// IP bazlı sunucular daha hızlı çalışıyor diye duymuştum :(
$pdo = new PDO("mysql:host=127.0.0.1;dbname=db" /* DSN */, "root" /* ad */, "" /* şifre */);
} catch(PDOException $e) {
// HATA YAZDIR
echo $e->getMessage();
}
?>
//----- Fonksiyon 3
function ornek(){
// küresel olarak bağlanmıştık, onu çağırıyorum
global $pdo;
// bu ? işareti çok önemli, direk olarak $id değişkeni şeklinde sorguya yazmadım bak mesela
// bu bir güvenlik önlemidir, çok basit bir mantık ama çok büyük güvenlik
# prepare ile soruguyu "pdo'ya" gönderiyoruz, ama sorgu yapmıyoruz
$sorgu = $pdo->prepare("SELECT id, adres, site_adres FROM ayarlar WHERE id = :id");
# sonra id = :id kısımdaki ":id" işaretini bir veriyle değiştiriyorum
# 1 numarayı oraya yerleştiriyorum, PDO::PARAM_INT diyerek de "tam sayı" olduğunu belirttim
# daha fazla PARAM_* için: http://www.php.net/manual/en/pdo.constants.php
# konu adresi için: http://www.php.net/manual/en/book.pdo.php
$sorgu->bindValue(":id", 1, PDO::PARAM_INT);
// Her şey hazır ve sorguyu yapıyorum
$sorgu->execute();
// Şimdi verileri alabilirim, çünkü veritabanıyla işim bitti,
# fetch "tekli sonuç", PDO::FETCH_ASSOC ise mysql_fetch_assoc'daki assoc; Array döndürüyor
$sonuc = $sorgu->fetch( PDO::FETCH_ASSOC );
echo $sonuc->site_adres . "/" . $sonuc->adres;
}
?>
Murat Alabacak <http://muratalabacak.net>
-
Üyelik
14.09.2012
-
Yaş/Cinsiyet
39 / E
-
Meslek
Yazılım geliştirme
-
Konum
Ankara
-
Ad Soyad
M** A**
-
Mesajlar
217
-
Beğeniler
55 / 48
-
Ticaret
0, (%0)
ahmettalut adlı üyeden alıntı
İkinize de çok teşekkür ederim. Haklısınız basit ancak işte ilk anda insan biraz zorlanıyor. Ne de olsa mysql_query() yaza yaza alıştık. Umarım kısa sürede öğrenirim. :)
Bu arada sizce PDO mu MySQLi mi?
Veritabanına hunharca yüklenen büyük çapta bir websitesine sahipsen zaten kendi veritabanı sınıfını yazıyorsun, bu sınıfta da mysqli veya PDO kullanıyorsun bana sorarsan yine PDO kullanırım; ama mysqli sanırım çok ama çok ufak dozda önüne geçiyor PDO'nun.
Ama denildiği gibi(denilmiyor aslında böyle bir şey de:D) PDO bir filse, mysqli bir karınca. Aynı işlevi aynı hızla yapamazlar.
Murat Alabacak <http://muratalabacak.net>
-
Üyelik
21.09.2013
-
Yaş/Cinsiyet
34 / E
-
Meslek
Yazılım geliştiricisi
-
Konum
Ankara
-
Ad Soyad
E** K**
-
Mesajlar
361
-
Beğeniler
51 / 43
-
Ticaret
0, (%0)
PHPR ( Türkçe PHP eğitim sitesi ) sitesinde PDO ile ilgili yalın bir anlatım var. Bakmanızı öneririm.
[freenodeIRC]
PHP = #laravelTurkiye
C++ = #qtTurkiye
Python = #pythonium
-
Üyelik
21.09.2013
-
Yaş/Cinsiyet
34 / E
-
Meslek
Yazılım geliştiricisi
-
Konum
Ankara
-
Ad Soyad
E** K**
-
Mesajlar
361
-
Beğeniler
51 / 43
-
Ticaret
0, (%0)
ahmettalut adlı üyeden alıntı
Baktım ancak işte az önceki cevabımda olduğu gibi normal de basit şekilde veriyi çekebiliyorum ancak işin içine fonksiyon girince işler bozuluyor.
$row = $db->query('SELECT * FROM ayarlar WHERE id = 1')->fetch();
gibi kodları şöyle yazmanızı tavsiye ederim:
$sql = "SELECT * FROM ayarlar WHERE id = 1";
$row = $db -> prepare($sql);
$row -> execute();
if($row -> rowCount() > 0) {
$f = $row -> fetch();
}
[freenodeIRC]
PHP = #laravelTurkiye
C++ = #qtTurkiye
Python = #pythonium