Basit PDO Kurulumu Ve PDO Kullanımı

Basit PDO Kurulumu Ve PDO Kullanımı

  • 8,655 Kez Okundu
  • PHP & MySQL
  • 2 Yorum
  • 2015-11-30 03:41:56

Mysql_* fonksiyonları ömrünü doldurmaya başladı , bu yüzdendir ki PHP mysql_* komutları üzerinden desteğini durdurmuş oldu ve PHP Geliştiricileri de artık bu komutların kullanımını tavsiye etmiyor. Bizde daha güvenli ve performanslı olan PDO kullanımını ele alacağız.

  1. Öncelikle PDO Kullanımı İçin Ne Yapmamız Gerekiyor ?

Gerekli sürücü ayarlarını aktif hale getirmeniz gerekiyor

  • Debian GNU/Linux Kurulum

PHP 5 ile gelen bir modül olduğu için versiyonu güncellememiz yeterli olacaktır.

# apt-get install php5-common libapache2-mod-php5 php5-cli

komutunu girerek gerekli paketleri yüklenmesi sağlanır, 

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

ardından komutları girilerek Apache servisi durdurulup yeniden başlatılması sağlanır.

  • Windows Kurulum

Belli başlı sürücülerin tamamı PHP ile birlikte gelir ve php.ini dosyasında etkin kılınmaları gerekir:

Hangi veritabanı sürücüsünü kullanıyorsanız, sürücü isminin önündeki noktalı virgülü ( ; ) kaldırınız.

extension=php_pdo.dll

; extension=php_pdo_firebird.dll

; extension=php_pdo_informix.dll

; extension=php_pdo_mssql.dll

extension=php_pdo_mysql.dll

; extension=php_pdo_oci.dll

; extension=php_pdo_oci8.dll

; extension=php_pdo_odbc.dll

; extension=php_pdo_pgsql.dll

; extension=php_pdo_sqlite.dll

Biz MySQL kullanacağımızdan dolayı php.ini dosyasından 

extension=php_pdo.dll ve extension=php_pdo_mysql.dll 

yönergelerini aktif ediyoruz.

Ve böylece PDO kullanabilmemiz için gerekenleri yapmış olduk.

  1. Şimdi İse PDO Nasıl Kullanılır?
  • PDO Veritabanı Bağlantısı
try {
     $db = new PDO("mysql:host=localhost;dbname=mtlive,charset=utf8", "root", "123456");
} catch ( PDOException $e ){
     echo 'Hata: '.$e->getMessage();
}

Burada try catch yapısını kullandık ki herhangi bir hata ile karşılaşırsak daha anlaşılır ve mantıklı hata mesajları görebilelim. charset kullanarak ise karakter setini UTF-8 olarak belirledik.

  • PDO Select İşlemi (Döngü İle Verileri Listelemek)
   $sql = $db->prepare("SELECT * FROM icerik");
   $sql->execute();
 
     while($row=$sql->fetch(PDO::FETCH_ASSOC)) 
       {
        echo $row['icerik_baslik']."
";
       }

Burada ise icerik adındaki tablodan icerik_baslik sütunundaki verileri çekerek ekrana yazdırdık.

  • PDO Select İşlemi (Tek Veri Çekmek)
$id = $db->quote($_GET['id']);
$query = $db->query("SELECT * FROM icerik WHERE id= ?")->fetch(PDO::FETCH_ASSOC);
 
$query ->bindParam(1, $id );
if ( $query ){
echo $query['icerik_baslik'];
}

Burada da $_GET ile gelen id değerini icerik tablosundaki id değerine eşlitleyip içerisindeki icerik_baslik sütunundaki veriyi çekiyoruz.

  • PDO insert İşlemi (Veri Eklemek)
$baslik = "İçerik Baslik";
$icerik = "İçerik Açıklama";
$isim= "Mücahit TOPAL";

    $sql = $db->prepare('INSERT INTO icerik(baslik,icerik_baslik,isim) VALUES (?,?,?)');
    $ekle = $sql->execute(array( 
        $baslik,
        $icerik,
        $isim
         ));
if ( $insert )
{
     $last_id = mysql_insert_id();
     echo "Kayıt ekleme işlemi başarılı!";
}

$baslik ,  $icerik ve $isim değişkenlerinden gelen değerleri içerik tablosundaki icerik_baslik , icerik , isim sütunlarına kaydetmiş olduk.

  • PDO delete İşlemi (Toplu Veri Silmek)
$delete = $db->exec("DELETE FROM icerik");
echo 'Toplam '.$delete.' kayıt silindi!';

icerik tablosundaki tüm kayıtları silmiş olduk.

  • PDO delete İşlemi (Tek Veri Silmek)
$query = $db->prepare("DELETE FROM icerik WHERE id = :id");
$delete = $query->execute(array(
     "id" => $_GET['id']
));

$_GET ile gelen id değerine göre icerik tablosundan gelen id değerine sahip verinin kaydını silmiş olduk.

  • PDO update İşlemi (Veri Güncelleme)
$baslik = "İçerik Baslik";
$icerik = "İçerik Açıklama";
$isim= "Mücahit TOPAL";
$id = $_GET['id']; 
$query = $db->prepare("UPDATE icerik SET icerik_baslik=? , icerik=? ,isim=? WHERE id=?");
$update = $query->execute(array(
     $baslik,
     $icerik,
     $isim,
     $id
));
if ( $update ){
     echo "Kayıt güncelleme başarılı!";
}

$_GET ile gelen id değerine göre icerik tablosunda bulunan kayıt satırını $baslik ,  $icerik ve $isim değişkenlerinden gelen değerleri karşılığı gelen  icerik_baslik , icerik , isim sütunlarına güncellemiş olduk.

  • PDO Veritabanı Bağlantı Sonlandırma
$db = null;

Böylece basit örnekler ile PDO kullanımını incelemiş olduk.

Güzel Projelerde Kullanabilmeniz Dileğiyle. Sevgiyle Kalın...

Batuhan Akkaya
@Batuhan Akkaya demiş ki ;

Pdo da execute demi var? 

admin
@admin demiş ki ;

Tabii kalite akıyor :-)

YORUM YAPMAK İSTER MİSİN?

    Sponsor Reklamlar
    Son Yorumlar
    Etiket Bulutu
    C#PopupFormOtomatikProgramBaşlatmaBaşlangıçBasitEkran Koruyucuc#ekran görüntüsümail göndermeexedllbirleştirmekIL MergePhpMSSQL BAĞLANTIGerçekIPRealTextBinaryConvertÇalışmaSüreHesaplamakBulmakCssjQueryHtmlScroll TopYukarı ÇıkOnMinimizeControlBoxSimge DurumunaKüçültInternetGetConnectedStateİnternetBağlantıKontrolŞifre MatikPassword GeneratorHash ŞifrelemeMD5SHA1SHA256SHA384SHA512Asimetrik ŞifrelemeRSASimetrik ŞifrelemeKriptoŞifrelemeAlgoritmaDESRC2RijndaelTripleDESKeyLogKlavye DinleTuş YakalamaGlobal HookDialogResultÇıkış MesajıUyarı MesajıFormClosingMySQLConnector/NetKullanımSoruCheckBoxListViewÇoklu SilmebiosdramexploitkontrolgüvenlikinteljavascriptrowhammerscriptPHPAdmin PanelResponsiveXtbadminFreeÜcretsizWifiWirelessKeysŞifreAnahtarPasswordKablosuz AğDepolamaŞifreler NeredeKablosuz ŞifreAndroidTelefonNasılYazılırProgramlama DiliHesap MakinesiSEONedirNasıl YapılırAnalizGoogleLinkÖzgünMobilKonuResim Robots.txtSite MapŞifreli GirişŞifreli FormŞifre KoymaŞifreli AçılışCompilingDebuggingDerlemeKarma ModMixed ModeApp.ConfigKurbanBayramMübarek OlsunBlogScriptYonetimAdminPanelText EditorMSHTMLEditorYazıDüzenleyiciEasyAppKolayUygulamaÇalıştırmaAkıllı TelefonKlavyeiOSKeyboardEl YazısıCalculatorMyScriptHand WritingDosya YöneticisiFile ExplorerFTPBluetoothRootTask ManagerGörev YöneticisiSystemTargetWeb Application PentestErrorShowHideHataGösterGizlePDOSelectInsertUpdateDeleteConnectSeçimEklemeSilmeGüncellemeMsSQLVeritabanıÇeviriçiDatabaseConverterDbConvertMaskeli IPGerçek IPTarayıcı Tespitİşletim Sistemi TespitTekil Ziyaretçi BilgileriAktif Ziyaretçi BilgileriZiyaretçi SayacıVirüsTemizlemeFirewallServiceSecurityServiceTimeServicePentestGüvenliksızma TestiuniscanwindowslinuxperlDosyaKlasörListelemekFileFolderListInternetDownloadUploadSpeedMonitorServisMsconfigStartupRunServiceIOSMatematikDenklemÇözümKameraKablosuzinternetHotspotPaylaşımAyarlarKaliLinuxSharedTerminalÖsymDuyuruTimeTimeZoneDateZamanTarihdate()time()FreelancerSerbestÇalışanJobsİşlerWebSiteVersionSürümGeçişUbuntuSunucuApachephpinfo()phpversion()FonksiyonHerseyiKopyalacopyallcopySızma TestiSQLMapWindowsPython810HotSpotWi-FiWlannetshhostednetworkAutoWlanJsGeri SayımTextAreaOtomatik KayıtSayacSaniyeCountDownXtbadminV2AjaxJavaScriptNumaraFormatPhoneNumberFormatTelefonNumarasıDebuggerDetectUnpackerDisassemblerSecurityReverseEngineeringAlgorithmMacDKHOSCTFCapture The FlagForensicTriviaIntelligenceCRC32CRYPTPASSWORD_HASHWin10StoreMağazaMicrosoftReInstallWSLPowerShellPOSTCyberSiberAdli BilişimHackerUSBCDLiveToolsBruterNmapMSSQL ServerMS SQL ExpressMS AccessOracleIBM DB2SybaseInterbaseInformixExceldBase DbfVisual FoxProMySQLConnectionŞifreleri BulCMDLaZagneEthernetTuxCutNetCutNetKillPerformansCronTabCronJobRestartStopStartBashShellWireSharkFlagUSOMBTKBase64QRÇözümlerWriteUpWrite-UpFinalReconOSINTToolScannerWebsiteSiber GüvenlikPhishingVPNWannacryMobileDeviceFunctionMobil AlgılaMobil TespitisMobilephp mobilJavascriptYazı EfektKayan YazıText EffectsearchBoxinputclassplaceholdersetIntervalsetTimeoutJSpreventBackwindowpushStatehistoryonloadblock browser back buttonVPN Nediranonimtorucuz ürünucuzurunum.commarket kıyaslaürün kıyaslakıyaslakarşılaştıra101şokhappy centermigroscarrefoursabizim marketkıyasürün fiyatıfiyat kıyaslaucuz fiyatfiyat sorVideoEmbedPlayerVideoIDgetVideoIDIframeCreditCardCard DetectKart AlgılaKart TespitKredi Kartı TespitVisaMastercardAIOpenAIChatGPTYapay Zekaquickchatkrispbeatovencleanvoicepodcastleflairillustrokepatternedstockimgcopymonkeyocoyaunbouncevidyotrymaverickquickchatpuzzlelabssounddrawcleanupresumewordedlookatheresanaiforthatsynthesiadescriptotterinkforall