İNTERNET PROGRAMCILIĞI DERSİ FİNAL NOTLARI

Benzer belgeler
WEB PROGRAMLAMA II. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Php Programlama Dili MySQL Uygulamaları

Php İle Mysql Veritabanından Bilgi Çekme

İnternet Programcılığı

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

T.C. SAKARYA ÜNİVERSİTESİ ADAPAZARI MESLEK YÜKSEKOKULU WEB TABANLI VERİ TABANI UYGULAMASI YÖNLENDİRİLMİŞ ÇALIŞMA. Enes Al 1027.

PHP ile İnternet Programlama

Bölüm 10: PHP ile Veritabanı Uygulamaları

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

Mysql Klası Kullanılarak Yapılan Öğrenci Kayıt Uygulaması

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

PHP kodları çoğu zaman HTML kodları arasına gömülü olarak yazıldığından öncesinde HTML kodlarınının bilinmesinde fayda vardır.


Üst Düzey Programlama

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

İNTERNET PROGRAMCILIĞI DERSİ

PHP ile İnternet Programlama

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

SESSİON KULLANIMI. .Aşağıdaki Kodları da SessionDevam.asp adıyla kaydedelim. Language=VBScript Codepage="1254"%>

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

ÖĞRENME-ÖĞRETME YÖNTEM VE TEKNİKLERİ. gösterip yaptırma, uygulamalı çalışma. Anlatım, soru-cevap, gösterip yaptırma, uygulamalı çalışma.

MySqlConnection connection; MySqlCommand command; MySqlDataReader reader; MySqlDataAdapter adapter; DataTable table;

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

TAKSİ-DURAK MÜŞTERİ TAKİP PROGRAMI

MOBİL UYGULAMA GELİŞTİRME

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

İnternet Programcılığı Dersi 2.Dönem Ders Notu

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals. Module 3: Cloud Computing

SQL e Giriş. Uzm. Murat YAZICI

BLGM 354 DENEY 1 * GİRİŞ

Genel Programlama II

PHP Günleri 2013#1. mysql_* Fonksiyonları Ömrünü Doldurmak Üzere. Peki Şimdi Ne Olacak? Özgür Yazılım A.Ş.

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

Laboratuar Notları #5

Öğr. Gör. Serkan AKSU 1

Yukarıdaki örnekte görüldüğü üzere her php komut satırı noktalı virgül (;) ile biter.

CODEIGNITER SEMINERI KÜTÜPHANE YAZMA GÜVENLIK ÖNLEMLERI CODEIGNITER 2.0

PostgreSQL ve PL/pgSQL

Bolum 9. Konu Başlıkları

BlackBerry Admin Service

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

PHP 1. Hafta 2.Sunum

08217 Internet Programcılığı I Internet Programming I

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

BİL-142 Bilgisayar Programlama II

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Internet Programming II

GOLDMESAJ SMS API DÖKÜMANI

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

JasperReports Server ve Ireport raporlama Sistemi Kurulumu / Kullanımı 1. Bölüm 2. Bölüm 1- JasperReports Server ve Ireport Nedir?

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Burada a değişkeninin türü integer olarak verildi. Peki biz bu ifadeyi tırnak içerisinde yazarsak ne olur?

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

Kabuk Programlama (Bash)

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

C#(Sharp) Programlama Dili

VERİTABANI. SQL (Structured Query Language)

Veritabanı. SQL (Structured Query Language)

How to ASP Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013

HSancak Nesne Tabanlı Programlama I Ders Notları

Veritabanı Tasarımı. SQL Deyimi Anatomisi

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

ADO.NET. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

ALGORİTMA VE PROGRAMLAMA II

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

WebInstaller. 1. Kurulum Đçin Gereksinimler

Ortamınızda A.D. veya LDAP sistemi var ise aşağıdaki linkten KoruMail LDAP-AD isimli dokümanı inceleyebilirsiniz.

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.


PostgreSQL ve PL/pgSQL

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

C++ Dersi: Nesne Tabanlı Programlama

MongoDB. Doğan Aydın. Eylül, 2011

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Lambda İfadeleri (Lambda Expressions)

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

COM API v.1.1 BELGE SÜRÜMÜ : 1.1

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

KULLANICI TANIMLI FONKSİYONLAR (Devam)

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

App İnventor-Pide Sipariş Uygulaması

KULLANICI TANIMLI FONKSİYONLAR (Devam)

Transkript:

İNTERNET PROGRAMCILIĞI DERSİ FİNAL NOTLARI Fonksiyonlar ile İlgili Örnekler; 1- function rakamlar() { for($sayi = 0; $sayi<10; $sayi++) { echo $sayi; rakamlar(); // oluşturduğumuz fonksiyonu çağıralım Ekranda 0123456789 yazacaktır. 2- function topla($sayi1, $sayi2) { $sonuc = $sayi1 + $sayi2; echo $sonuc; topla(5, 10); Şimdi topla adında bir fonksiyon oluşturduk ve buna 2 adet parametre ekledik. $sayi1 ve $sayi2 parametreleri bizim o fonksiyonu kullanırken yazacağım değerlerin yükleyeceği değişkenlerin adı. Biz topla(5, 10) dediğimizde fonksiyon içinde $sayi1 değişkeninin değeri 5, $sayi2 değişkeninin değeri ise 10 olacak. Ve ekranda da 15 yazacaktır. 3- function bolunur_mu($bu, $buna) { $kalan = $bu % $buna; if($kalan == 0) { echo $bu. ' sayısı '. $buna. ' sayısına bölünür!'; else { echo $bu. ' sayısı '. $buna. ' sayısına bölünmez! (kalan: '.$kalan.')'; bolunur_mu(10, 2); bolunur_mu(25, 10); İki rakamın birbirine bölünüp bölünmediğini kontrol eden bir fonksiyon yaptık. Ve bu fonksiyonu 2 farklı değerde kullanıp çağırdık. Bu çalışmanın sonunda ekranda yazacak olanlar:

10 sayısı 2 sayısına bölünür! 25 sayısı 10 sayısına bölünmez! (kalan: 5) Parametreli bir fonksiyon yaptığımızda sorunsuz çalışabilmesi için tüm parametrelerin girilmesi gerekir. Mesela yukarıda verdiğimiz topla fonksiyonunu topla(1); şeklinde çalışmaya kalktığımızda PHP hata verecektir. Çünkü fonksiyonu 2 tane parametre ile çalışmak üzere tasarladık. Ama bu durumlara bir istisna sağlayarak parametrelerimize varsayılan değer atayıp, parametresiz de çalışmalarını sağlayabiliriz. 4-function hosgeldin($isim = 'Misafir') { echo 'Hoşgeldin '. $isim. '! '; hosgeldin(); hosgeldin('musa'); Örnekte hosgeldin() fonksiyonunu ilk olarak parametresiz, ikinci olarak da parametreli çalıştırdık. Bu durumda fonksiyonun parametresini tanımladığımız yerde hosgeldin($isim = misafir ) şeklinde parametreye varsayılan değer atadığımız için boş bıraktığımızda o parametreye bu değeri verecektir. Yani ekranın çıktısı aşağıdaki gibi olacaktır: Hoşgeldin Misafir! Hoşgeldin Musa! Yukarıda yaptığımız tüm örneklerde fonksiyon sonuçları echo ile ekrana yazdırdık. Peki ya biz fonksiyonlardan elde ettiğimiz sonuçları ekrana yazdırmak değilde bir değişkene atayıp kullanmak istiyorsak? İşte o zaman return ifadesini kullanacağız. Return ifadesi ile fonksiyon içinde elde ettiğimiz sonucu dışarıya aktarırız. 5-function topla($sayi1, $sayi2) { $sonuc = $sayi1 + $sayi2; return $sonuc; $hesap = topla(10, 20); echo 'Fonksiyon ile toplama yaptık ve sonuç: '. $hesap; Bu sefer aynı topla() fonksiyonu ile echo yerine return yazdık. Bu da fonksiyonun sonucunu ona eşitlediğimiz bir değişkene atadı. Yani fonksiyon toplamayı yaptı ve sonucu $hesap değişkenine aktardı sonra biz onu echo ile ekrana yazdırdık. Fonksiyonların içerisinde tanımladığın değişkenler dışarıya gönderilmez ve aynı şekilde dışarıda tanımladığın bir değişken fonksiyon içinde görülmez. Yani fonksiyonlara kendi içinde bir dünya diyebilirsin. Eğer fonksiyon içine dışarıdan bir değişkeni sokmak istiyorsak, yani global bir değişkeni çağırmak istiyorsak global ifadesini kullanırız.

6- $isim = 'Musa'; function selam() { global $isim; // Dışarıda tanımlanmış bir değişkeni fonksiyon içine çağırdık echo 'Selam '. $isim; selam(); Ekranda Selam Musa yazar. Global ifadesini kullanarak fonksiyon dışında yazdığımız bir değişkeni çağırdık ve ekrana yazdırdık. Return ifadesi kullanılmadan fonksiyon içindeki bir değişkeni veya çıktıyı dışarı aktaramayız. Global ifadesi kullanılmadan da dışarıda kullanılan bir değişkeni fonksiyon içine aktaramayız. Sadece fonksiyonu çalıştırarak dışarıdan parametreye gönderilen değişkenin değerini referanslar ile değiştirebiliriz. Referans uygulamak istediğimiz değişkenin başına (&) operatörünü koyarız. Bu operatörü yerleştirdiğimiz parametreler, dışarıdan verilecek olan değişkenlerle beraber değişirler. 7-function topla(&$sayi) { $sayi = $sayi + 10; $x = 10; topla($x); echo $x; Ekranda 20 yazar. Topla fonksiyonunun parametresinde kullandığımız referans nedeniyle o parametreye yüklenen değişkenin değeri fonksiyon içinde değiştirmemizle değişecek. Burada da fonksiyon içinde o parametreye +10 eklediğimiz için dışarıdaki değişkeninde değeri 10 artmış oldu. Diyelim uzun bir metinin içinden yanlızca ilk cümleyi almak istiyoruz, bunu nasıl yaparız? En basit açıklaması ve yolu; metnin başından ilk noktaya kadar olan kısmını alarak. Explode fonksiyonu ile bir metni istediğimiz karakterden parçalara ayırabiliyoruz. Mesela boşluktan ayır diyerek metin içindeki tüm kelimelere tek tek ulaşabiliriz. Explode fonksiyonu parçalara böldüğü metinlerin sonucu dizi haline getirir ve her bir parçayı bir eleman yapar. 2 parametre ile çalışır, ilk parametresine bölünecek karakter, ikinci paramteresi ise parçalara ayrılacak olan metin ya da metnin buldunduğu değişken yazılır.

8-$metin = 'Bu birinci cümle. Bu ise ikinci cümle'; $cumle = explode('.', $metin); echo $cumle[0]; Ekranda Bu birinci cümle yazar. Bunun sebebi explode fonksiyonunu ile noktadan bölüp oluşan sonucun ilk elemanını almış olamamız. Dizi elemanları sayısal olarak 0 dan başlar bu nedenle ilk parçamız dizinin 0 anahtarlı elemanı oluyor. İkinci cümleyi yazdırmak isteseydik echo $cumle[1]; dememiz gerekirdi. 9- function ucgenciz($sayi) { for($i=0;$i<=$sayi;$i++) { for($j = 0; $j<=$sayi;$j++) { if($i>=$j) echo " * "; echo "<br/>"; ucgenciz(10); MYSQL BAĞLANTI KURMA İlk olarak MYSQL e nasıl bağlantı yapacağımızı $baglanti = @mysql_connect('host', 'kullanıcı adı', 'şifre'); $veritabani = @mysql_select_db('veritabanı adı'); if($baglanti && $veritabani) { echo 'Bağlantı kuruldu.'; else { echo 'Bağlantı kurulamadı.'; mysql_close($baglanti); // MYSQL sunucusu ile bağlantımızı koparttık?> Bağlantımızı yaptıktan sonra mysql_query() fonksiyonu ile veritabanına sorgular göndeririz. Tabi sorguları gönderebilmemiz için önceden MYSQL ile bağlantı kurmuş olmamız gerekiyor. mysql_query('sql CÜMLESİ')or die("sorgu çalıştırılamadı")

MYSQL bağlantısı oluşturmak için öncelikle mysql_connect fonksiyonu ile veritabanı bilgileri girilir, sonra mysql_select_db fonksiyonu ile kullanılacak veritabanı seçilir. Hazırladığım bu sınıfta bu iki fonksiyon yerine daha sınıfı tanımlarken bağlantıyı yapmış oluyorsun. $vt = new vt('kullanıcı', 'şifre', 'veritabanı'); Bu satırdan sonrasında $vt değişkeni üzerinden tüm veritabanı işlemlerini gerçekleştirebiliriz. Eğer MySQL hostunuz localhost haricinde ise bunun için 4. parametreyi kullanılabilir, bu parametre varsayılan olarak localhost tanımlı. mysql_connect fonksiyonu ile önce mysql'e bağlanmaya çalışıyoruz. Burada 3 parametre belirtmemiz gerekiyor. 1. parametre genelde standart olan hostumuzun adı yani locakhost, uzak sunucuda da genelde localhost olarak giriliyor. Veritabanınız yerelde çalışıyorsa, yani şu kendi makinenizdeyseniz ve mysql üzerinde herhangi bir kullanıcı oluşturmadıysanız otomatik olaram "root" kullanıcısı oluşturulmuştur ve şifresi yoktur. Bu şekilde yerelde bir problem yok fakat uzak sunucuya bağlandığınızda zaten mecburi kullanıcı adı ve şifre oluşturuyorsunuz. Oluşturduğunuz bu kullanıcı adı ve şifreyi de 2. ve 3. parametrelere yazacaksınız. Eğer mysql'e başarılı bir şekilde bağlandıysanız sırada veritabanınıza bağlanmak var. Oluşturduğunuz veritabanı ismini kullanarak ve az önce mysql'e bağlanmak için oluşturduğumuz kontrol değişkenini kullanarak veritabanı bağlantısını sağlayabilirsiniz. mysql_select_db fonksiyonuna 1. parametre olarak veritabanı adı, 2. parametrede mysql'e bağlanırken oluşturduğumuz değişkeni yazın. Şart ifadelerini başlarına ünlem "!" koyarak olumsuz hale getirdim, yani herhangi bir problem olur da mysql yada veritabanına bağlanılamazsa tarayıcıya bir uyarı yazdırıp kodların çalışmasını sonlandırıyorum. die fonksiyonu bu işe yaramaktadır. Bu fonksiyonu gördüğü anda bu satırdan sonraki satırlar çalışmaz. Yani programı öldürür. Karakter setinde problem yaşanmaması amacıyla bağlantı kodlarının altına şu satırları eklemekte fayda var. mysql_query("set NAMES 'utf8'"); mysql_query("set CHARACTER SET utf8"); mysql_query("set COLLATION_CONNECTION = 'utf8_general_ci'"); Genelde bağlantı kodları ayrı bir sayfada tutulur. Biz de bu mantıkla hareket ederek, "baglanti.php" dosyasını "index.php" içerisine dahil ediyoruz. Bunu yaparken include fonksiyonundan yardım alyoruz. index.php include("baglanti.php");?>

Kayıt ekleme $ $ad='yılmaz'; $soyad='arslantürk'; $e_posta='yilmaz@hotmail.com'; include("baglanti.php"); $sorgu=mysql_query("insert into deneme (ad,soyad,e_posta) values ('$ad','$soyad','$e_posta')"); if($sorgu){ echo 'Kayıt Eklendi.'; else{ echo 'Kayıt Eklenemedi!'; Kayıt Düzenleme if ($_POST){ $id=$_post["id"]; $ad=$_post["ad"]; $soyad=$_post["soyad"]; $e_posta=$_post["e_posta"]; $sorgu=mysql_query("update deneme set ad='$ad',soyad='$soyad',e_posta='$e_posta' where id='$id'"); else{ if ($sorgu){ else{ echo 'Başarılı bir şekilde.'; echo 'Güncelleme işlemi başarısız'; echo 'Yanlış yerlerde geziniyosun';

?>Kayıt Silmek if ($_POST){//post metodu ile değer gönderildiyse $id=$_post["id"];//hidden ile gönderilen id değerini al $sor=mysql_query("delete from deneme where id='$id'");//id değerine eşit id'li kaydı sil if ($sor){ echo "Kayıt silindi"; else{ echo "Kayıt Silinemedi"; else{//post metodu ile değer gönderilmediyse $sorgu=mysql_query("select * from deneme");//tüm kayıtları seç echo '<table>'; echo '<tr><td>ad</td><td>soyad</td><td>e-posta</td><td>silinsin mi?</td></tr>'; $sayac=1;//formların isimleri farklı olsun diye kullanılacak while($kayit=mysql_fetch_array($sorgu)){ echo '<form action="" method="post" name="form'.$sayac.'">'; echo '<tr>'; echo '<td>'.$kayit["ad"].'</td>'; echo '<td>'.$kayit["soyad"].'</td>'; echo '<td>'.$kayit["e_posta"].'</td>'; echo '<td><input type="submit" name="gonder" value="evet"/></td>'; echo '<input type="hidden" name="id" value="'.$kayit["id"].'"/>'; echo '</tr>'; echo '</form>'; $sayac++; echo '</table>';?>

Arama İşlemi if ($_POST){ $ara=$_post["ara"]; $sorgu=mysql_query("select * from deneme where ad like '%$ara%'"); if (empty($ara)){ echo 'Arama alanını boş bıraktın'; else{ if (mysql_num_rows($sorgu)>0){ while($kayit=mysql_fetch_array($sorgu)){ echo $kayit["ad"].' '.$kayit["soyad"].' '.$kayit["e_posta"]; echo '<br/>'; else{ echo 'Eşleşen Kayıt Yok.'; else{?> <form name="form1" action="index.php?sayfa=arama" method="post"> Aranacak Kelime:<input type="text" name="ara"/> <input type="submit" name="gonder" value="ara"/> </form>?>

Mysql de tablomuz içinde bulunan verilerin sayısını ekrana yazdırmak için yazmamız gereken komutu öğreneceğiz. Mysql de tablodaki verilen adetini mysql_num_rows fonkisyonu ile saydırıp ekrana yazdırabiliriz. include("baglan.php"); $veri=mysql_query("select * FROM tablomuz"); echo mysql_num_rows($veri);?> Bağlantı Kapatma $baglanti=null; Sınıfta PDO arayüzü üzerinden örnekler yaptık. Onun da kodları ve açıklaması şu şekilde. Özellikle bunlara bakmanızı tavsiye ederim. Sınıfta böyle örnekler yapıldığı için!!!! PDO nedir? PDO(PHP Data Objects / PHP Veri Objeleri) özetle; hafif ve tutarlı bir şekilde veritabanına erişimi sağlayan bir arayüz. Adından da anlayacağınız üzerie Object Oriented Programming arayüzüne sahip, onlarca veritabanı sürücüsü destekliyor. PDO ile MYSQL e bağlanmak Genel olarak bağlantı olaylarını bir PDO sınıfını tanımlarken bir DSN yani Data Source Name ile belirtiyoruz. Hangi veritabanı sürücüsüne bağlanacağımızı ve bilgilerimizi DSN ile ifade ediyoruz. Diğer iki parametrede ise veritabanı kullanıcı adı ve şifremizi giriyoruz. $db = new PDO('mysql:host=localhost;dbname=test', $user, $pass); $dsn = 'mysql:host=localhost;dbname=test'; $user = 'dbuser'; $password = 'mypassword';

try { $db = new PDO($dsn, $user, $password); catch (PDOException $e) { echo 'Connection failed: '. $e->getmessage(); Bu şekilde de bağlantı hatalarını yakalıyoruz. Sorgu hatalarını yönetmek Query ya da exec gibi sorgu gönderdiğimiz metodlar eğer sorguyu gerçekleştirdiklerinde bir hata ile karşılaşırlarsa false dönerler. Başarısız gerçekleşen bu sorguların hata mesajlarına ulaşmak için errorinfo metodunu kullanacağız. Bu metod bize son yaptığımız sorgudaki hatanın kodunu ve mesajını içeren bir array döndürür. 3 adet elemanı bulunan bu dizide 0. ve 1. eleman hata kodlarını, 2. eleman ise hata mesajını verir. if($users = $db->query('select * FROM users WHERE')) { else { // Sorgu başarıyla çalışırsa üyeleri listeleriz echo 'Sorguda bir hata meydana geldi.'; $error = $db->errorinfo(); echo 'Hata mesajı: '. $error[2]; Örnekteki sorguda WHERE dedikten sonra herhangi bir koşul belirtmediğimiz için hata verecektir ve ekrana ilgili hatanın mesajı yazacaktır. PDO ile sorgu göndermek Eğer yapacağımız sorgudan bir sonuç almayı beklemiyorsak exec, bir sonuç isteniyorsa query metodlarını kullanmalıyız. Özetle; DELETE/UPDATE/INSERT gibi sorgularımız için exec, SELECT gibi sorgularımız için query. try {

$db = new PDO('mysql:host=localhost;dbname=test', $user, $password); $db->exec('set NAMES `UTF-8`'); $count = $db->exec('delete FROM messages WHERE old = 1'); echo $count. ' messages deleted'; catch (PDOException $e) { echo 'Connection failed: '. $e->getmessage(); Exec metodu sonuç olarak etki ettiği satır sayısını döndürür. PDO ile verileri listelemek Bunun için yukarıda bahsettiğim query metodunu kullanacağız foreach($db->query('select * FROM users') as $row) { echo $row['name']. '<br/>'; PDO ile bir satır veri çekmek Bunun için query ile sorgumuzu çağırdıktan sonra fetch ile ilk sonucu alacağız. $row = $db->query('select * FROM users WHERE id = 1')->fetch(); echo $row['name']; Yeni bir kayıt eklemek Yeni bir kayıt eklemek için exec metodunu kullanacağız. Sonrasında eğer eklediğimiz satırın ID sini almak istiyorsak lastinsertid metodunu çağıracağız. Eklerken bir sorun gerçekleşirse exec metodu false dönecektir. Bu nedenle öncelikle eklenip eklenmediği kontrol edip sonrasında ID yi ekrana yazdırabiliriz. if($db->exec('insert INTO users (name) VALUES ("Musa")')) { else { $id = $db->lastinsertid(); echo 'Yeni eklenen üyenin IDsi: '. $id; echo 'Yeni kayıt eklerken bir hata meydana geldi.';

PDO bağlantısını kapatmak Eski MySQL bağlantısında da olduğu gibi açtığınız bağlantıyı kapatmasanız da PHP otomatik olarak işlem sonunda bağlantıyı keser. Fakat ille de ben kapatacağım diyorsanız null tanımlamanız yeterli. // bağlantıyı açtık $db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);[ // bağlantıyı kapattık $db = null; PDO ile Arama Yapma try{ //hata varmı diye kontrol mekanizması. yaptık $baglanti=new PDO("mysql:host=localhost;dbname=pdo","root",""); //bağlantı echo "Mysql Bağlantısı Başarıyla Sağlandı. <br />"; //bağlantı varsa ekrana yaz. $ara=$baglanti->query("select * from uye where isim like '%a%' "); //isim sütununda a harfi geçenleri çektik. $miktar=$ara->rowcount();//verilerin hepsini saydırdık. if($ara){//eğer veri çekildiyse

echo "veri çekildi <br />"; if($miktar>0){ değişkenine aktaracak foreach($ara as $al){//foreach $arada ki tüm verileri tek tek $al sütununu ekrana bastırdık echo $al["isim"]."<br />";//Aldığımız verilerden isim