Bu makalede PHP kullanarak veritabanı sorgulama işlemleri anlatılmaktadır Bu dili kullanarak web sitelerinde veri yönetimi yapmak oldukça popülerdir Veritabanı bağlantısı kurmak için öncelikle bağlantı dosyaları oluşturulması gereklidir CRUD işlemleri, yani veritabanı işlemlerinin temel fonksiyonları insert, select, update ve delete fonksiyonlarıdır Bu fonksiyonlar sayesinde veritabanında kayıt ekleme, okuma, güncelleme ve silme işlemleri gerçekleştirilebilir Veritabanı sorgu yöntemleri de kullanarak bu işlemler daha da hızlı ve verimli hale getirilebilir Ancak, veritabanı bağlantı hatalarıyla karşılaşmak da mümkündür ve bu hatalarla başa çıkmak için hata çözümleri de sunulmuştur

PHP, bir web sitesinin fonksiyonlarını ve verilerini yönetmek için sunduğu en popüler web programlama dillerinden biridir. Bu dil, birçok veritabanı türü ile uyumlu çalışabilir ve bu sayede dinamik web siteleri için veritabanı sorgulama işlemleri gerçekleştirilebilir. Bu makalede, PHP ile veritabanı sorgulama işlemlerinin nasıl yapılabileceği detaylı bir şekilde ele alınacak.
Veritabanı sorgulama işlemleri için ilk adım her zaman veritabanı bağlantısı kurmak olmalıdır. Bunun için öncelikle bağlantı dosyalarının oluşturulması gereklidir. Oluşturulan bu dosyalar, veritabanı yapısına ve türüne göre farklılık gösterir. Bu dosyalar oluşturulduktan sonra, PHP kodları ile veritabanı bağlantısı sağlanabilir ve sorgulama işlemleri yapılabilir.
Veritabanı sorgulama işlemleri yaparken CRUD fonksiyonları kullanılır. CRUD, İngilizce "create, read, update, delete" kelimelerinin baş harfleri ile yazılmış bir kısaltmadır ve veritabanı işlemlerinin temel fonksiyonlarını ifade eder. PHP'de CRUD işlemleri için birçok kullanışlı fonksiyon mevcuttur. Her bir fonksiyon, sorgulama işlemleri sırasında farklı amaçlar için kullanılabilir.
insert() fonksiyonu, PHP ile veritabanına kayıt eklemeyi sağlayan bir fonksiyondur. Bu fonksiyon, özellikle dinamik web siteleri için oldukça kullanışlıdır. Örnek kodlar yardımıyla bu fonksiyonun nasıl kullanıldığı açıklanacak ve istenildiği şekilde özelleştirme yapmak mümkün olacak.
select() fonksiyonu ise PHP ile veritabanından veri okumayı sağlar. Bu fonksiyon, bir veya birden fazla kayıt okumak için kullanılabilir. Aynı zamanda, özelleştirme yapma şansı da vardır.
Güncelleme işlemi yapmak için update() fonksiyonu kullanılır. Bu fonksiyon sayesinde var olan kayıtlardaki veriler güncellenebilir. Bu fonksiyon da örnek kodlarla açıklanacak ve kullanımı sırasında özelleştirme yapmak mümkün olacak.
Son olarak, delete() fonksiyonu veritabanından kayıt silmeyi sağlar. Bu fonksiyon da özellikle dinamik web siteleri için büyük bir kolaylık sağlar. Bu fonksiyonun kullanımı da örnek kodlarla açıklanacak ve istenildiği şekilde özelleştirme yapılabilecek.
PHP ile veritabanı sorgulama işlemleri oldukça güçlü ve esnektir. Bu sayede dinamik web siteleri için ihtiyaç duyulan birçok fonksiyon sağlanabilir. Veritabanı bağlantıları, CRUD işlemleri, sorgu yöntemleri ve hata çözümleri gibi konular bu makalede ele alınarak, doğru bilgiye sahip bir şekilde PHP kullanıcısı olabilirsiniz.
Veritabanı Bağlantısı Kurma
PHP ile veritabanı sorgulama işlemlerine başlamak için öncelikle veritabanı bağlantısı kurulması gerekiyor. Bunun için öncelikle ihtiyacımız olan bilgiler belirtilmeli. Bu bilgiler sırasıyla; kullanıcı adı, şifre, veritabanı adı ve sunucu adresidir.
Bu bilgiler girildikten sonra bağlantı dosyaları oluşturulmalıdır. Bunun için mysqli_connect() fonksiyonu kullanılabilir. Ayrıca hata kontrolü de yapılarak bir sorun varsa hata mesajı verilebilir. Örnek kodlarla bağlantı dosyalarının nasıl oluşturulacağı öğrenilebilir.
Fonksiyon Adı | Açıklama |
---|---|
mysqli_connect() | Veritabanına bağlanmak için kullanılır. |
mysqli_select_db() | Veritabanı adı belirtilen veritabanına bağlantı yapar. |
mysqli_error() | Son MySQL hatasını döndürür. |
Bağlantı dosyaları oluşturulduktan sonra, veritabanı sorgulama işlemleri için gerekli kodlar yazılabilir. Bu işlemler sırasıyla; kayıt ekleme, okuma, güncelleme ve silme işlemleridir.
- Kayıt Ekleme: Veritabanına yeni kayıt eklemek için mysqli_query() fonksiyonu kullanılır.
- Okuma: Veritabanından veri okumak için mysqli_query() fonksiyonu kullanılır.
- Güncelleme: Var olan kayıtları güncellemek için mysqli_query() fonksiyonu kullanılır.
- Silme: Veritabanından kayıt silmek için mysqli_query() fonksiyonu kullanılır.
Bu işlemler için gerekli fonksiyonlar ve örnek kullanımları, ilgili başlık altında bulunan alt bölümlerde ele alınacak.
CRUD İşlemleri
CRUD işlemleri, veritabanı işlemleri için en temel fonksiyonlardır. Bu işlemler create, read, update ve delete işlemlerinin kısaltmasıdır. Öncelikle veritabanına bağlantı dosyaları oluşturulmalıdır. Bu sayede sorgulama işlemleri gerçekleştirilebilir. CRUD işlemlerinde kullanılan en temel PHP fonksiyonları insert(), select(), update() ve delete() fonksiyonlarıdır.
Örneğin, insert() fonksiyonu sayesinde veritabanına yeni bir kayıt eklenebilir. Fonksiyon kullanılarak veritabanına kayıt eklemek oldukça kolaydır. Kullanılış örneğinde tabloya eklenmesi gereken veriler belirtilir ve fonksiyon kullanılarak veritabanına kaydedilir. Aynı şekilde select() fonksiyonu sayesinde veriler okunurken, update() fonksiyonu sayesinde var olan kayıtların güncellenmesi mümkündür. delete() fonksiyonu ise veritabanından kayıtların silinmesini sağlar.
CRUD işlemleri sırasında veritabanı sorgu yöntemleri de kullanılabilir. MySQLi ve PDO sorguları, veritabanı işlemlerinin daha iyi bir şekilde yönetilmesini sağlar. Bu sorguların kullanımı veritabanı işlemlerinin daha da hızlı bir şekilde gerçekleştirilmesini sağlar.
Veritabanı bağlantı hataları ile karşılaşmak da mümkündür. Özellikle ilk kez veritabanı bağlantısı kurulurken, kullanıcıların çeşitli hatalarla karşılaşması olasıdır. Ancak, bu hataların nedenleri genellikle basit sorunlardır ve hızlı bir şekilde çözülebilirler. Örneğin, yanlış kullanıcı adı veya şifre girilmiş olabilir. Bu durumda doğru bilgilerin girilmesi gereklidir.
CRUD işlemleri sırasında kullanılan fonksiyonları ve sorgu yöntemlerini öğrenmek, veritabanı yönetimi için oldukça önemlidir. Bu sayede kolay bir şekilde veritabanı işlemleri gerçekleştirilebilir ve hataların önlenmesi sağlanabilir.
create, read, update, deletePHP ile veritabanı sorgulama işlemleri arasında en temel işlemlerden biri olan CRUD kavramı, create, read, update, delete işlemlerinin kısa sözcükler ile ifade edilmesidir. Bu işlemlerle, verilerin oluşturulması, okunması, güncellenmesi ve silinmesi mümkün hale gelmektedir.
Bu işlemler yapılırken kullanılan PHP fonksiyonları ise şunlardır:
- insert(): Veritabanına kayıt eklemek için kullanılır.
- select(): Veritabanından veri okumak için kullanılır.
- update(): Var olan kayıtların güncellenmesi için kullanılır.
- delete(): Veritabanından kayıt silmek için kullanılır.
Bu işlemlerle ilgili örnek kodları inceleyerek, nasıl kullanabileceğinizi öğrenebilir ve uygulamanızda kolayca kullanabilirsiniz.
işlemleri yapılırken kullanılacak PHP fonksiyonları ve örnek uygulamalar yer alacak.CRUD işlemleri, veritabanında kayıt ekleme, okuma, güncelleme ve silme işlemlerini kapsar. Bu işlemler PHP'nin veritabanı sorgulama işlemlerinde sıklıkla kullanılan fonksiyonları aracılığıyla gerçekleştirilir. CREATE işlemi için insert() fonksiyonu, READ işlemi için select() fonksiyonu, UPDATE işlemi için update() fonksiyonu ve DELETE işlemi için delete() fonksiyonu kullanılır.
insert() fonksiyonu, yeni bir kayıt eklemek için kullanılır. Bu fonksiyonun kullanımı oldukça basittir. Örneğin;
Örnek Kod: | INSERT INTO tablo_adi (alan_adi1, alan_adi2, alan_adi3) VALUES ("deger1", "deger2", "deger3"); |
select() fonksiyonu, veritabanından veri okumak için kullanılır. Bu fonksiyon sayesinde belirli bir tablodan belirli bir alan seçilerek okuma işlemi gerçekleştirilir. Örneğin;
Örnek Kod: | SELECT alan_adi1, alan_adi2, alan_adi3 FROM tablo_adi; |
update() fonksiyonu, mevcut bir kaydı güncellemek için kullanılır. Bu fonksiyon sayesinde belirli bir tabloda belirli bir kaydın belirli alanlarına değişiklik yapılabilir. Örneğin;
Örnek Kod: | UPDATE tablo_adi SET alan_adi1="yeni_deger1", alan_adi2="yeni_deger2", alan_adi3="yeni_deger3" WHERE id=1; |
delete() fonksiyonu, belirtilen koşulu sağlayan kaydı silmek için kullanılır. Bu fonksiyon sayesinde belirli bir tablodan belirli bir kaydın silinmesi sağlanır. Örneğin;
Örnek Kod: | DELETE FROM tablo_adi WHERE id=1; |
Bu fonksiyonlar sayesinde CRUD işlemleri kolayca yapılabilir ve veritabanı sorgulama işlemleri daha da hızlandırılır. Örnek kodlar üzerinden de bu işlemler daha net bir şekilde anlaşılabilir.
insert() Fonksiyonu
PHP ile veritabanı işlemleri yaparken kayıt eklemek için insert() fonksiyonu kullanılabilir. Bu fonksiyon veritabanına kayıt ekleme işlemini kolaylaştırmaktadır. Öncelikle veritabanına bağlantı dosyası oluşturulmalıdır. Bağlantı dosyası oluşturulduktan sonra insert() fonksiyonu kullanılabilir.
insert() fonksiyonu kullanımı oldukça basittir. İlk olarak SQL insert sorgusu oluşturulur. Daha sonra bu sorgu insert() fonksiyonuna parametre olarak gönderilir. Örneğin:
$sql | = | "INSERT INTO `kitaplar` (`kitap_adi`, `yazar_adi`, `yayin_evi`) VALUES ('Kara Kutu', 'Ahmet Ümit', 'Doğan Kitap')" |
$sorgu | = | $baglanti->query($sql) |
Yukarıdaki örnekte $sql değişkeni insert sorgusunu içermektedir. Bu sorgu, 'kitaplar' tablosuna yeni bir kayıt ekler. $sorgu değişkeni, insert() fonksiyonunu çağırarak SQL sorgusunu veritabanına gönderir.
Bu şekilde insert() fonksiyonu kullanılarak veritabanına kayıt eklemek oldukça basittir. Ayrıca, insert() fonksiyonu, ekleme işlemi sırasında birçok özelleştirme fırsatı sunar. Örneğin, yeni bir kayıt eklendiğinde, otomatikman atanması gereken alanlar için bir değer atayabilirsiniz. Bu şekilde veritabanına kayıt eklemek artık daha kolay!
Örnek Kodlar
PHP ile veritabanına kayıt eklemek için insert() fonksiyonu kullanılır. Kodlar sırasıyla şöyle yazılmalıdır:
Alan Adı | İşletim |
---|---|
ID | Auto Increment |
Adı | VARCHAR |
Soyadı | VARCHAR |
Yaş | INT |
PHP kodları şu şekildedir:
$servername = "localhost";$username = "username";$password = "password";$dbname = "myDB";//Bağlantı Oluşturma$conn = mysqli_connect($servername, $username, $password, $dbname);//Bağlantı Kontrolüif (!$conn) { die("Connection failed: " . mysqli_connect_error());}//Veri ekleme$sql = "INSERT INTO MyGuests (firstname, lastname, email)VALUES ('John', 'Doe', 'john@example.com')";if (mysqli_query($conn, $sql)) { echo "Kayıt başarıyla eklendi";} else { echo "Error: " . $sql . "
" . mysqli_error($conn);}mysqli_close($conn);
Burada örnek olarak 'MyGuests' adlı bir tabloya veri ekleyeceğiz. Sütunlar ve veri tipleri şu şekildedir:
- ID (Auto Increment)
- firstname (VARCHAR)
- lastname (VARCHAR)
- email (VARCHAR)
Kodlardaki bilgileri kendi veritabanınıza ve kullanmak istediğiniz tablolara göre değiştirebilirsiniz. Bu şekilde, veritabanına kayıt eklemek için insert() fonksiyonunu rahatlıkla kullanabilirsiniz.
Özelleştirme
insert() fonksiyonunun kullanımı sırasında özelleştirme yapılabilecek bölümler mevcuttur. Bunlar:
- İşlem yapılmış olan veritabanı bağlantısı seçme
- Tablo adı belirleme
- Veri ekleme işlemi yapılacak sütunların belirleme
- Veri eklenecek sütunların isimlerini ve değerlerini belirleme
Örneğin, birden fazla veritabanı bağlantısı yapıldıysa farklı veritabanlarından veri alınabilir. Bunun için, insert() fonksiyonunda mysqli_select_db() fonksiyonu kullanılabilir. Tablo adı belirlemek için, insert() fonksiyonu içinde kullanılacak değişkenler hazırlanabilir. Veri ekleme işlemi yapılacak sütunlar belirlenerek, fonksiyona gönderilebilir. Veri eklenecek sütunların isimleri ve değerleri kullanıcının isteğine göre belirlenebilir.
select() Fonksiyonu
Veritabanından veri okumak, web uygulamalarında çok sık kullanılan bir işlemdir. Bu işlemi yaparken PHP'nin select() fonksiyonu kullanılır. Bu fonksiyon veritabanından istenilen veriyi almayı ve kullanıcıya göstermeyi sağlar.
select() fonksiyonu kullanırken, öncelikle veritabanı bağlantısı kurulur ve ardından gerekli SQL sorgusu oluşturulur. SQL sorgusu, kullanıcı tarafından belirlenir ve veritabanından hangi verilerin okunacağını belirtir. Bu sorgu, select() fonksiyonuna parametre olarak geçirilir ve veritabanından ilgili veriler okunur.
Bir örnek vermek gerekirse, bir e-ticaret sitesinin müşterilerinin adını ve soyadını gösteren bir sayfası olsun. Bu sayfa için veritabanından kullanıcı adını, soyadını ve diğer bilgileri seçmek gerekir. Bu işlemi yapmak için select() fonksiyonu kullanılabilir. Örneğin:
ID | Name | Surname | |
---|---|---|---|
1 | John | Doe | john.doe@example.com |
2 | Jane | Doe | jane.doe@example.com |
3 | Bob | Smith | bob.smith@example.com |
Yukarıdaki örnekte, veritabanından tüm müşterilerin adlarını ve soyadlarını göstermek için aşağıdaki select() fonksiyonu kullanılabilir:
- $sql = "SELECT Name, Surname FROM Customers";
- $result = $conn->query($sql);
Ardından, $result değişkenindeki veriler, örneğin bir HTML tablosu şeklinde, kullanıcıya gösterilebilir. Böylece, select() fonksiyonu kullanarak veritabanından veri okumak oldukça kolay bir iş haline gelmiştir.
Örnek Kodlar
select() fonksiyonu, veritabanından veri okumak için kullanılır. Bu fonksiyona meydana getirilen isteklerde, verilerin koşullarına ve türüne bakılabilir. Ayrıca, sorgunun geri dönüşüne göre bir takım işlemler yapılabileceğinden select() fonksiyonu oldukça önemli bir konuma sahiptir.
Örnek olarak, bir kullanıcı veritabanından bir takım bilgileri çekmek istediğinde, select() fonksiyonu kullanılabilir. Bu fonksiyon sayesinde, istenilen bilgilerin koşulları belirlenebilir ve veritabanından çekilen verilerin kullanıcının beklentilerine uygun şekilde filtrelenmesi sağlanabilir. Aşağıda select() fonksiyonu için örnek bir kod bulunmaktadır:
```
$conn = mysqli_connect($host, $user, $password, $db_name);
if (!$conn) { die("Connection failed: " . mysqli_connect_error());}
$sql = "SELECT * FROM table_name WHERE column_name='value'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["surname"]. "
"; }} else { echo "0 results";}
mysqli_close($conn);?>```
Yukarıdaki örnekte, mysqli_connect() fonksiyonuyla veritabanına bağlantı kurulduktan sonra, $sql değişkenine sorgu yazılır. Ardından, mysqli_query() fonksiyonuyla sorgu çalıştırılır ve mysqli_fetch_assoc() fonksiyonu sayesinde sorgudan dönen sonuçlar tek tek çekilerek ekranda gösterilir.
Bu şekilde select() fonksiyonunun kullanımı öğrenildikten sonra, daha spesifik koşullar ve filtrelemeler yapmak için WHERE, AND, OR gibi koşullar da kullanılabilir. Bu fonksiyon sayesinde, veritabanında mevcut olan tüm bilgiler çekilerek, kullanıcının ihtiyacına uygun bir şekilde gösterilebilir.
Özelleştirme
Bunun yanı sıra,
Ayrıca, LIMIT ifadesi kullanılarak kaç adet verinin okunacağı da belirtilebilir. Örneğin, SELECT * FROM Customers LIMIT 10 sorgusu, sadece ilk 10 müşterinin verilerini getirir.
Sonuç olarak,
update() Fonksiyonu
PHP üzerinde veritabanı sorgulama işlemlerinde kullanılan bir diğer fonksiyon da update() fonksiyonudur. Bu fonksiyon sayesinde veritabanındaki var olan kayıtlar güncellenebilir.
update() fonksiyonu, bir tablodaki tüm kayıtları birden güncellemez. Bunun yerine belirtilen ölçütlere göre sadece belli kayıtları günceller.
Bu fonksiyonun kullanımı oldukça kolaydır. Örnek olarak, aşağıdaki kodu inceleyebilirsiniz:
Kodu | Açıklama |
---|---|
UPDATE `ogrenciler` SET `ogrenci_adi`='Ali' WHERE `ogrenci_id`=1 | ogrenciler tablosunda ogrenci_id'si 1 olan öğrencinin adını Ali olarak güncelle |
Yukarıdaki kodda "ogrenciler" tablosunda "ogrenci_id" si 1 olan öğrencinin "ogrenci_adi" alanı güncelleniyor. update() fonksiyonu, "SET" ile yeni verileri belirler ve "WHERE" ile de hangi kaydın güncelleneceğini belirler.
Bu örnek kodu kullanarak kendinize özgü bir kod yazabilirsiniz. update() fonksiyonu sayesinde veritabanındaki istenmeyen verileri güncelleyebilirsiniz.
Örnek Kodlar
update() fonksiyonu ile veritabanındaki kayıtları güncellemek için örnek kodlar aşağıda yer almaktadır:
Fonksiyon | Açıklama |
---|---|
mysqli_query() | Veritabanına sorgu gönderir |
mysqli_affected_rows() | Güncellenen kayıt sayısını döndürür |
Örnek kodlar:
$uye_id = 5; $ad = 'John'; $soyad = 'Doe'; $baglanti = mysqli_connect("localhost", "kullanici_adi", "sifre", "veritabani_adi"); if($baglanti === false){ die("Hata: Veritabanına bağlantı yapılamadı." . mysqli_connect_error()); } $sql = "UPDATE uye SET ad='$ad', soyad='$soyad' WHERE id=$uye_id"; if(mysqli_query($baglanti, $sql)){ echo "Kayıt başarıyla güncellendi."; } else { echo "Hata: Kayıt güncellenemedi." . mysqli_error($baglanti); } mysqli_close($baglanti);
Özelleştirme
update() fonksiyonu ile veritabanında var olan kayıtların güncellenmesi işlemi yapılabilir. Bu işlem sırasında özelleştirmeler yapılabileceği gibi bazı parametrelerin kullanımı da mevcuttur. update() fonksiyonunun özelleştirme seçenekleri şunlardır:
- SET: SET parametresi kullanılarak güncelleme işlemi yapılacak kısımdaki sütun ve değerleri belirleyebilirsiniz.
- WHERE: WHERE parametresi kullanarak güncelleme işlemi yapılacak sütunun, belirli bir koşula uygun olması gerektiği belirtilebilir.
- LIMIT: LIMIT parametresi kullanılarak kaç kaydın güncellenmesi gerektiği belirlenebilir. Bu parametre kullanılmadığında, tüm kayıtlar güncellenir.
Bu parametreler update() fonksiyonu kullanılarak aşağıdaki örnekte gösterilmiştir:
Örnek Kod | Açıklama |
---|---|
UPDATE table_name SET column1 = 'value1', column2 = 'value2' WHERE some_column = 'some_value' | table_name tablosunda some_column kolonu ‘some_value’ değerine sahip olan kayıtların column1 ve column2 değerleri güncellenir. |
UPDATE table_name SET column1 = 'value1', column2 = 'value2' ORDER BY some_column DESC LIMIT 10 | table_name tablosundaki kayıtların column1 ve column2 değerleri some_column kolonuna göre sıralanır. En son 10 kayıt güncellenir. |
Bu örneklerde görüleceği gibi, update() fonksiyonu ile güncelleme işlemi yapılırken, özelleştirme seçenekleri kullanılarak, işlem daha da detaylandırılabilir.
delete() Fonksiyonu
delete() fonksiyonu, veritabanından kayıt silmek için kullanılan bir işlevdir. Bu işlev, uygulamaların veritabanındaki verileri yönetmesi için önemli bir araçtır. Öncelikle, veritabanında silmek istediğiniz kayıt veya kayıtları seçmeniz gerekiyor. Bunun için önce WHERE koşulunun belirlenmesi gerekiyor. Ardından, delete() fonksiyonunu kullanarak kayıt veya kayıtları silme işlemini gerçekleştirebilirsiniz.
delete() fonksiyonu özellikle bir veri kaydının işe yaramaz hale gelmesi durumunda, örneğin kullanıcının silinmesi, bir işlem iptal edildiği zaman ya da veritabanındaki bir hata sonucu düzeltmek için kullanılır. Bu nedenle, bu işlev, yazılım geliştiricileri tarafından sıklıkla kullanılır.
Bir örnek olarak, aşağıdaki kod parçası kullanılarak bir veritabanı kaydı silinebilir:
<?php $conn = new mysqli("localhost", "kullanici_adi", "sifre", "veritabani_adi"); if($conn->connect_error){ die("Bağlantı hatası: " . $conn->connect_error); } $sql = "DELETE FROM uyeler WHERE ID=4"; if ($conn->query($sql) === TRUE) { echo "Kayıt başarıyla silindi"; } else { echo "Kayıt silinirken hata oluştu: " . $conn->error; } $conn->close();?>
Bu kod bloğunda, "uyeler" tablosundan "ID" sütunu 4 olan kayıt silinir. Daha fazla satır için, sadece WHERE koşulunu değiştirmeniz gerekebilir. Bu işlemi gerçekleştirmek için sadece bir satır kod yazmanız yeterlidir.
Örnek Kodlar
Veritabanından kayıt silmek için kullanılan delete() fonksiyonu oldukça işlevsel bir fonksiyondur. Örnek kodlarla fonksiyonun nasıl kullanılacağı daha net anlaşılabilir hale getirilebilir. Öncelikle, veritabanı bağlantısı kurulmalıdır. Daha sonra, silinmesi gereken kaydın veritabanından seçimi yapılır. Bunun için where koşulu kullandığımızdan emin olunmalıdır. Silme işlemi ise delete() fonksiyonu yardımıyla gerçekleştirilir.
Bir örnek kod şu şekildedir:
ID | Name | Surname | |
---|---|---|---|
1 | John | Doe | john.doe@example.com |
2 | Jane | Smith | jane.smith@example.com |
Aşağıdaki örnek kodlar, kayıt silmek için delete() fonksiyonunun nasıl kullanılacağını gösterir:
$conn = mysqli_connect("localhost", "my_user", "my_password", "my_db"); // Bağlantı kontrolü yapılır if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } // Tablodan kayıt silinir $sql = "DELETE FROM customers WHERE id=2"; if (mysqli_query($conn, $sql)) { echo "Record deleted successfully"; } else { echo "Error deleting record: " . mysqli_error($conn); } mysqli_close($conn);
Bu örnekte, customers tablosundan id değeri 2 olan kayıt silinir. İşlem başarılı olursa, "Record deleted successfully" mesajı görüntülenir. Aksi takdirde, bir hata mesajı gösterilir.
delete() fonksiyonu kullanırken özelleştirme yapmak mümkündür. Örneğin, birkaç kaydı toplu olarak silmek için where koşulu kullanılabilir. Bununla birlikte, bu özelleştirmeleri yaparken, veritabanı güvenliği konusunda dikkatli olmak önemlidir.
Özelleştirme
Veritabanından kayıt silmek için kullanılan delete() fonksiyonu sırasında bazı özelleştirmeler yapmak mümkündür. Özellikle büyük veritabanlarında, kayıtların silinmesi oldukça önemlidir. Bu nedenle, delete() fonksiyonu sırasında silme işlemini hangi kritere göre yapacağımızı belirlemek oldukça önemlidir. Bunun için çeşitli parametrelerle fonksiyonu özelleştirmek mümkündür.
Örneğin, delete() fonksiyonu sırasında WHERE kelimesini kullanarak, silinecek kayıdı belirlemek mümkündür. WHERE kelimesi, silinecek kaydı belirleme konusunda oldukça etkilidir. Ayrıca, AND ya da OR ifadeleri ile birlikte kullanılarak daha spesifik bir silme işlemi gerçekleştirilebilir.
Ayrıca, delete() fonksiyonu sırasında bazı özel silme işlemleri de gerçekleştirilebilir. Örneğin, CASCADE özelliği kullanılarak, silinen kayıt ile ilişkili diğer kayıtların da silinmesi sağlanabilir. Böylece, silme işlemi daha da kolaylaşır.
Ayrıca, veritabanı sıralaması da özelleştirilebilir. Bu sayede, silinecek kayıtların belirtilen bir sıraya göre silinmesi sağlanabilir. Bunun için ORDER BY kullanılabilir.
Tüm bu özellikler, delete() fonksiyonunu oldukça esnek ve kullanışlı bir hale getirir. Ancak, bu fonksiyonu kullanırken dikkatli olmakta fayda vardır. Yanlış kullanıldığında, diğer kayıtların yanlışlıkla silinmesine neden olabilir.
Veritabanı Sorgu Yöntemleri
PHP ile veritabanı sorgulama işlemleri yaparken kullanabileceğiniz en önemli yöntemlerden biri SQL sorguları kullanmaktır. SQL sorguları, veritabanındaki verileri okumak, ekleme yapmak, güncelleme yapmak ve silmek için kullanılır. SQL sorguları, MySQLi ve PDO sorguları olarak ikiye ayrılır.
MySQLi sorguları, PHP'nin MySQLi kütüphanesi tarafından desteklenen SQL sorgularıdır. PDO sorguları ise PHP Data Objects (PDO) kütüphanesi tarafından desteklenen SQL sorgularıdır. İki sorgu türü de benzer şekilde kullanılabilir, ancak aralarında bazı farklılıklar vardır.
- MySQLi sorguları, sadece MySQL veritabanını desteklerken, PDO sorguları, MySQL, PostgreSQL, Oracle ve diğer bazı veritabanlarını destekler.
- PDO sorguları, daha sade ve güvenli bir kod yazma işlemi sunar. Ayrıca, veritabanı değiştiğinde veya farklı bir veritabanı kullanmak istediğinizde kodun yeniden yazılmasını gerektirmez.
SQL Sorgusu Türü | Kullanım Alanları |
---|---|
SELECT | Veri okuma |
INSERT | Veri ekleme |
UPDATE | Veri güncelleme |
DELETE | Veri silme |
SQL sorguları, veritabanı yapılarına göre farklılık gösterebilir. Bu nedenle SQL sorgularının nasıl kullanılacağı, veritabanının yapısal özelliklerine göre değişebilir. Ancak genel olarak, veritabanı sorgu işlemleri için kullanılan SQL sorgularının örnek kodları internette bulunabilir.
MySQLi Sorguları
MySQLi sorguları PHP ile veritabanı işlemleri yaparken kullanılan en popüler yöntemlerden biridir. Aşağıda kullanılabilecek bazı örnek kodlar verilmiştir:
İşlem | Kod |
---|---|
Bağlantı kurma | $servername = "servername"; $username = "username"; $password = "password"; $dbname = "dbname"; //Bağlantı oluşturma $conn = new mysqli($servername, $username, $password, $dbname); //Bağlantıyı kontrol etme if ($conn->connect_error) { die("Bağlantı hatası: " . $conn->connect_error); } |
Select sorgusu | $sql = "SELECT * FROM tabloadi"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Ad: " . $row["ad"]. " " . $row["soyad"]. " "; } } else { echo "Kayıtlı veri yok."; } |
Insert sorgusu | $sql = "INSERT INTO tabloadi (ad, soyad, email) VALUES ('John', 'Doe', 'john@example.com')"; if ($conn->query($sql) === TRUE) { echo "Kayıt başarılı."; } else { echo "Hata: " . $sql . " " . $conn->error; } |
Update sorgusu | $sql = "UPDATE tabloadi SET ad='Jane' WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "Güncelleme başarılı."; } else { echo "Hata: " . $sql . " " . $conn->error; } |
Delete sorgusu | $sql = "DELETE FROM tabloadi WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "Silme işlemi başarılı."; } else { echo "Hata: " . $sql . " " . $conn->error; } |
Yukarıdaki örnek kodları kullanarak MySQLi sorguları ile veritabanı işlemlerini rahatlıkla yapabilirsiniz.
PDO Sorguları
PDO, PHP programlama dilinde tek bir veritabanı sunucusu üzerinde birden çok veritabanı sunucusuna bağlanmaya olanak sağlayan bir arabirimdir. Bu nedenle, PDO sorguları, veritabanı bağlantısı konusunda büyük bir esneklik sağlar. PDO sorguları, bir veritabanından veri seçme, veritabanına veri ekleme, mevcut verileri güncelleme veya silme işlemlerini gerçekleştirmek için kullanılabilir. Ayrıca, PDO sorguları, PHP uygulamalarını daha güvenli hale getiren özelliklere sahiptir.
PDO sorguları yazarken kullanılan temel dil SQL'dir. Aşağıda, PDO sorguları için bazı örnekler verilmiştir:
// PDO ile veritabanına kayıt ekleme$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");$stmt->execute([$name, $email]);
// PDO kullanarak veritabanından veri okuma$stmt = $pdo->prepare("SELECT * FROM users WHERE id=?");$stmt->execute([$id]);$user = $stmt->fetch();
// PDO kullanarak var olan verileri güncelleme$stmt = $pdo->prepare("UPDATE users SET name=? WHERE id=?");$stmt->execute([$name, $id]);
// PDO kullanarak veritabanından veri silme$stmt = $pdo->prepare("DELETE FROM users WHERE id=?");$stmt->execute([$id]);
Yukarıdaki örnekler, PDO ile veritabanı sorgulama işlemlerini gerçekleştirirken kullanılabilecek temel sorguları göstermektedir. Bu örnekleri, kendi PHP uygulamalarınıza entegre edebilir ve veritabanı işlemlerini başarılı bir şekilde gerçekleştirebilirsiniz.
Sonuç olarak, PDO sorguları PHP programlama dilinde veritabanı işlemleri yaparken büyük bir esneklik sağlar. Veritabanından data seçme, yeni veri ekleme, mevcut verileri güncelleme veya silme işlemlerini gerçekleştirmek için kullanılabilir. PDO, veritabanı bağlantısı konusunda büyük bir uyumluluk sağladığından, Microsoft SQL Server, MySQL, Oracle ve PostgreSQL gibi çeşitli veritabanı sunucularına bağlanmak için kullanılabilir. Bu nedenle, öğrenmesi gereken birçok işlevi ve özelliği olan bir PHP geliştiricisi için paha biçilmez bir araçtır.
Veritabanı Bağlantı Hataları
Veritabanı bağlantısı sırasında karşılaşılan hatalar oldukça yaygın olabilir. Bu hataların ortaya çıkması, sorunun çözümü için atılacak adımların belirlenmesinde büyük önem taşır.
Öncelikle, en yaygın veritabanı bağlantısı hatası, yanlış kullanıcı adı veya şifreyle yapılan bağlantı girişimidir. Bu sorunun çözümü, veritabanı yöneticisi tarafından verilen doğru kullanıcı adı ve şifrenin girilmesiyle mümkün olacaktır.
Bir diğer sık karşılaşılan hata ise, gerekli olan veritabanı sunucusuna yapılan bağlantı hatasıdır. Böyle bir durumda, sunucunun doğru adresine ve bağlantı portuna sahip olduğunuzdan emin olunmalıdır.
Ayrıca, veritabanına sadece sınırlı sayıda bağlantı yapılabilmesine izin verilirse, bağlantı sayısı sınırlıdır. Bu sınırı aşmanın bir yolu, sunucuda bu sınırı yükseltebilecek bir ayar yapacak bir yönetici tarafından yapılabilirdir.
Sonuç olarak, veritabanı bağlantısı sırasında hataların oluşması normaldir. Ancak bu hataların çözümüne odaklanarak, veritabanı işlemlerini başarıyla tamamlamak mümkündür.
Örnek Hatalar
Veritabanı bağlantısı sırasında çeşitli hatalarla karşılaşabilirsiniz. 'Access Denied' hatası veritabanına bağlanmaya çalışırken kullanıcı adı ve şifrenin yanlış girilmesi durumunda oluşabilir. Veritabanı sunucusuna bağlanamama hatası 'localhost' yerine doğru IP adresinin girilmemesi nedeniyle oluşabilir. Bağlantı hatası 'mysqli_connect_error()' fonksiyonu kullanılarak kontrol edilebilir.
Bir diğer sık karşılaşılan hata 'Table Not Found' hatası olup, veritabanında hata yapılırsa tablo veya veriler silinebilir. Bu hata genellikle veritabanı sorguları için kullanılan SQL kodlarında hatalı syntax nedeniyle oluşur. Verileri doğru şekilde girmediğinizde 'Column Count Doesn't Match Value Count' hatası ile karşılaşmanız mümkündür.
- 'MySQL server has gone away' hatası, MySQL bağlantısının kesilmesi ile ilgilidir. Çözümü için 'wait_timeout' ve 'max_allowed_packet' gibi ayarlar değiştirilmelidir.
- 'Unknown column' hatası, belirtilen sütunun, tabloya eklenmediği bir sorguda belirtilmesi nedeniyle oluşabilir.
- 'Lost connection to MySQL server' hatası, MySQL sunucusunun çalışmadığı veya sunucu ile bağlantının kesildiği durumlarda gözlemlenebilir.
Yukarıda bahsedilen hataların birçoğu, PHP ve MySQL bağlantısını izlemek için PHP hata raporlama işlevi, 'error_reporting ()', izleme özelliği, 'ini_set ()' ve gösterme özelliği, 'display_errors ()' değişkenleri kullanılarak çözülebilir.
Çözümler
Veritabanı bağlantı hataları, PHP kod yazarken en çok karşılaşılan sorunların başında gelir. Ancak bu problemlerin çözümleri de oldukça basittir. Veritabanı bağlantı hatası alıyorsanız, öncelikle bağlantı kodlarınızı kontrol edin. Kodlarda bir yanlışlık varsa çözüme hızlıca ulaşabilirsiniz.
Bir diğer problem ise, veritabanı ile ilgili bazı izinlerin eksik olmasıdır. Çözüm olarak, veritabanı yönetim aracını kullanarak eksik izinleri tanımlayabilirsiniz.
Bazı hatalar server tarafından da kaynaklanabilir. Bu gibi durumlarda, hata mesajını okuyarak sorunu anlamaya çalışın. Daha sonra, mümkünse server yönetiminden yardım alabilirsiniz.
Örnek kodları kullanarak veritabanı bağlantı hatalarını kolaylıkla çözebilirsiniz. Ayrıca, hataların ileride tekrarlanmaması için doğru kodlama tekniklerini benimsemek de oldukça önemlidir.
Aşağıdaki tablo örnek veritabanı bağlantı hatalarının çözümlerini göstermektedir:
Hata Kodu | Çözüm |
---|---|
1045 | Veritabanı kullanıcı adı ya da şifresi yanlış girilmiştir. Bağlantı doğru şekilde ayarlanmalıdır. |
2002 | Belirtilen veritabanı ismi bulunamadı. Veritabanı ismi doğru girilmiş mi kontrol edilmelidir. |
1049 | Veritabanı adı yanlış girilmiştir. Veritabanı ismi doğru girilmelidir. |
Bunlar, en sık karşılaşılan hatalardan yalnızca birkaçıdır. Ancak herhangi bir hata durumunda örnek kodlara başvurarak sorunu kolayca çözebilirsiniz.