Cohorts
  • Discover
  • About Us
  • Blog
  • Patika.dev
  • Web3

PHP Temel

Php Nedir ve Nasıl Çalışır?
Php'nin Tarihçesi ve Dokümantasyon Bilgilendirmesi

Kurulumlar ve Geliştirme Ortamı

Php Dosyası Oluşturma
PhpStorm ve PHP Interpreter Ayarı
Php Etiketleri, Yazım Kuralları ve Açıklama Satırları

HTML İçinde Php Kullanımı

Değişkenler
Sabitler
Veri Türleri

Aritmetik Operatörler
Karşılaştırma Operatörleri
Artırma ve Azaltma Operatörleri
Birleştirme ve Atama Operatörleri
Mantıksal Operatörler

If else ve elseif Kullanımı
Switch Case Kullanımı

Tek Boyutlu Diziler
Çok Boyutlu Diziler

for Döngüsü
foreach Döngüsü
While ve Do While Döngüsü

Fonksiyon Tanımlama ve Kullanma
Anonim Fonksiyonlar
Recursive Fonksiyonlar
Static Kavramı
Global Tanımı
Ödev

Dizi Fonksiyonları 1
Dizi Fonksiyonları 2
Dizi Fonksiyonları 3
Dizi Fonksiyonları 4
Ödev

String Fonksiyonları

Post Kullanımı
Get Kullanımı
Request Kullanımı
Ödev

Dosya İşlemleri
Dizin İşlemleri
Dosya ve Dizin Taşıma İsimlendirme
Dosya Dahil Etme
Dosya Dizin Listeleme

Oturum(Session) İşlemleri
Çerez(Cookie) İşlemleri
Pratik - Login Uygulaması

Tarih ve Zaman İşlemleri

Sınıflara Giriş
Erişilebilirlik
Kurucu ve Yıkıcı Methodlar
Kalıtım Miras Alma
Final Kullanımı
Static Kullanımı
Abstract Kullanımı
Namespace Kullanımı
Interface Kullanımı
Zincirleme Method Kullanımı
Ödev

Mysql'e Giriş ve Veritabanı İşlemleri
Veri Türleri ve Tablo İşlemleri
SELECT, CRUD
Where Limit Order
Like
SUM MIN MAX COUNT GROUP HAVING
IN NOT IN
FIND_IN_SET
Between Kullanımı

Veritabanı Bağlantısı
Veri Ekleme/Silme/Listeleme/Güncelleme
Koşullama/Limit/Sıralama
Verilerde Arama
MIN, MAX, COUNT ve GROUP BY HAVING Kullanımı
IN NOT IN Kullanımı
FIND IN SET Kullanımı
Between Kullanımı
JOIN, LEFT JOIN, RIGHT JOIN
Gruplama

MVC Yapısı

Veri Değişim Formatları

Hata Yönetimi

Güvenlik

cURL Kullanımı

Mail İşlemleri (PhpMailer Sınıfı)

.htaccess Kullanımı

PHP ve JS

Klasör Yapısı, Routing, Tema Entegrasyonu ve Genel Ayarlar
Giriş Çıkış İşlemleri ve Kullanıcı Tablosunun Oluşturulması
Kategori Oluşturma, Listeleme, Silme ve Güncelleme
Todos Ekleme SweetAlert2 ve Axios eklendi
Todo Güncele Sil Listele Yapıldı Todolara Progress Bar ve Status Eklendi
FullCalender TimeLine Entegresi Profil Güncelleme Todos Istatistikler
Profil Güncelleme Regex Kontrollü Şifre Güncelleme

Bölüm 1 - OOP MVC Yapısı Routing İşlemleri Çekirden Sınıfların Hazırlanması
Bölüm 2 - View Hazırlanışı,Tema Entegresi, Router Oluşturma
Bölüm 3 - Login İşlemi
Bölüm 4 - Müşteri Güncelleme Silme ve Ekleme
Bölüm 5 - Proje Ekleme Güncelleme ve Silme
Bölüm 6 - Müşteri Not Alımı, Profil Sayfası Oluşturma
Bölüm 7 - Profil Güncelleme Proje Listesinde Müşteri Bilgisinin Alınması
Bölüm 8 - Anasayfa İstatistiklerinin Hazırlanması

Veri Tipleri

Sayısal Veri Tipleri

  • TINYINT(boyut) : Alabileceği değerler –128 ile 127 arasındadır. Unsigned (Sadece pozitif değerler girilecek) olarak tanımlı ise 0 ile 255 arasındadır. “Boyut” ile alabileceği sınırı belirtebiliriz. Hafızada kapladığı alan ise 1 byte.
  • SMALLINT(boyut) : -32.768 ile 32.767 arasında değer alır. Unsigned tanımlı aralık 0 ile 65535 arasında değer alır. “Boyut” ile alabileceği sınırı belirtebiliriz. Hafızada kapladığı alan: 2 byte.
  • MEDIUMINT(boyut) : -8.388.608 ile 8.388.607 arasında değer alır. Unsigned tanımlı aralık 0 ile 16777215 arasındadır. “Boyut” ile alabileceği sınırı belirtebiliriz. Hafızada kapladığı alan: 3 byte.
  • INT(boyut) : Alabileceği değerler –2147483648 ile 2147483647 arasındadır. Unsigned tanımlı aralık 0 ile 4294967295 arasındadır. “Boyut” ile alabileceği sınırı belirtebiliriz. Hafızada kapladığı alan: 4 byte.
  • BIGINT(boyut) : -9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 arasında değer alır. “Boyut” ile alabileceği sınırı belirtebiliriz. Hafızada kapladığı alan: 8 byte.
  • FLOAT(boyut,d) : Değer aralıkları; –3.402823466E+38 ile –1.175494351E-38, 0 arası ve 1.175494351E-38 ile 3.402823466E+38 arasındadır. Küçük rakamlı virgüllü ifadeler için kullanılır. “Boyut” ile sayının (virgüllü kısmı dahil) alabileceği en fazla miktar belirtilirken, “d” ile virgülden sonra kaç basamak olacağı belirtilir. Örneğin, 32.658 sayısını saklayacağımız float türü bir sütun tanımlarken, FLOAT(5,3) olarak tanımlarız. Buradaki 5 rakamı, sayının tamamının (noktasız olarak) basamak uzunluğu, 3 rakamı ise noktadan sonraki hane sayısını ifade eder. Float veri türünde eğer ondalıklı hane daha uzun ise sayının yuvarlanma durumu oluşabilir. FLOAT(5,2) olarak tanımladığımız bir sütunda 275.199 sayısını saklamak istersek, MySQL otomatik olarak bu sayıyı 275.20 olarak saklayacaktır. Boyut değeri en fazla 23 olabilir. Unsigned olarak çalışmazlar. Hafızada kapladığı alan: 4 byte.
  • DOUBLE(boyut,d) : Büyük noktalı sayı. Büyük rakamlı virgüllü ifadeler için kullanılır. “Boyut” ile sayının virgüllü kısmı dahil alabileceği en fazla miktar belirtilirken, “d” ile virgülden sonra kaç basamak olacağı belirtilir. Boyut değeri en fazla 53 olabilir. Unsigned olarak çalışmazlar. Hafızada kapladığı alan: 8 byte.
  • DECİMAL(boyut,d) : Double ‘ın yetmediği durumlarda, virgüllü ifadeler için kullanılır. “Boyut” ile sayının virgüllü kısmı dahil alabileceği en fazla miktar belirtilirken, “d” ile virgülden sonra kaç basamak olacağı belirtilir. Boyut değeri en fazla 65 olabilir. Hafızada kapladığı alan değişiklik gösterir.

Metinsel Veri Tipleri

  • CHAR(boyut) : Sabit sayıdaki karakterleri (harf, numara veya özel karakter) tutar. Parantez içindeki boyut uzunluğu belirtir. Char(5) tanımlı bir alana 2 karakterlik bir veri girerseniz 5 byte alan ayırır, yani tanımladığınız boyut kadar. Maksimum 255 karakter barındırabilir. Tekrar eden boşluklar değer alındığı zaman silinir. En fazla 8.000 karaktere kadar depolama yapar.
  • VARCHAR(boyut) : Değişken sayıdaki karakterleri tutar. En fazla 8.000 karaktere kadar depolama yapar. Varchar(5) tanımlı bir alana 2 karakterlik bir veri girerseniz 2 byte alan ayırır. Buradan varchar ile char arasındaki farkı; char tanımlanan boyut kadar alan ayırırken, varchar girilen karakter boyutu kadar alan ayırır şeklinde ifade edebiliriz.
  • TINYTEXT : En fazla 255 karakter alır. (Boşluklar dahildir.)
  • TEXT : En fazla 65.535 karaktere kadar veri girilebilir. (Boşluklar dahildir.)
  • BLOB: Binary Long Objects – Binary yani ikili verilerin saklanacağı durumlarda kullanılır. En fazla 65.535 byte (yaklaşık 64 KB) veri saklanabilir.
  • MEDIUMTEXT : 16.777.215 karaktere kadar metinsel ifadeleri depolayabilir.
  • LONGTEXT : 4.294.967.295 karaktere kadar metinsel ifadeleri depolayabilir.
  • ENUM: Değer listesinden seçilebilecek her biri maksimum 65535 karakterli string değerler tutabilir. İhtimalli girişlerde kullanılabilir. Giriş önceliğine göre sıralama yapılır. Giriş formatına örnek: ENUM(‘X’,’Y’,’Z’,’F’).
  • SET: Yapısı ENUM’a benzemektedir. Ancak 64 taneye kadar giriş yapılabilir.

Tarih – Zaman Veri Tipleri

  • DATE : Desteklenen aralık ‘1000-01-01’ ile ‘9999-12-31’ arasıdır. MySQL tarihleri YYYY-MM-DD biçiminde gösterir.
  • DATETIME : Desteklenen aralık ‘1000-01-01 00:00:00’ ile ‘9999-12-31 23:59:59’ arasıdır. MySQL DATETIME değerlerini ‘YYYY-MM-DD HH:MM:SS’ biçiminde gösterir.
  • TIMESTAMP : Desteklenen aralık ‘1970-01-01 00:00:00’ ile 2037 yılında herhangi bir zaman arasındadır. MySQL TIMESTAMP değerlerini YYYYMMDDHHMMSS biçiminde gösterir. Depolama biçimi DATETIME() ile aynıdır. Ancak yazdığınız program üzerinden bu alan veri gönderimi yapılmaz. O anki tarih ve saati otomatik olarak ekler bu nedenle, TIMESTAMP insert ve update işlemlerinde kullanışlıdır. Eğer elle bir tarih-saat eklenecekse o zaman veri tipi DATETIME() olarak ayarlanmalıdır.
  • TIME : Sadece saat verisi saklamak için kullanılır. Desteklenen aralık ‘-838:59:59’ ile ‘838:59:59’ arasındadır. MySQL TIME değerlerini ‘HH:MM:SS’ biçiminde gösterir.
  • YEAR: 2 veya 4 basamaklı yıl bilgisini saklamak için kullanılır. Dört basamaklı verilerde 1901 ile 2155 arası değer saklanır. İki basamaklı verilerde ise 70 ile 69 (1970 ile 2069) arası değerler saklanır.

Daha Fazla Bilgi Alın

Tablo İşlemleri


Tablo oluşturma
CREATE TABLE db_name (
    id INT(11)
);
Tabloları Listeleme
  SHOW TABLES;
Tablo Hakkında Bilgi Alma
  EXPLAIN db_name;
Tablo Yeniden İsimlendirme
RENAME TABLE db_name TO new_db_name
Tabloyu Silme
DROP TABLE db_name;
Tabloya Sütun Ekleme
ALTER TABLE db_name ADD COLUMN isim VARCHAR(100);
Tabloya Birden Fazla Sütun Ekleme
ALTER TABLE db_name ADD COLUMN(
    soyisim VARCHAR(50),
    maas DECIMAL(10,2)
);
Tablonun Belirli Bir Yerine Sütun Ekleme
ALTER TABLE db_name ADD COLUMN telefon VARCHAR(50) AFTER soyisim;

Tablonun Başına Eklemek İçin
ALTER TABLE db_name ADD COLUMN eposta VARCHAR(50) FIRST;

Tablodan Sütun Silmek
ALTER TABLE db_name DROP COLUMN eposta;
Sütunu Yeniden Adlandırmak
ALTER TABLE db_name CHANGE soyisim kullanici_adi VARCHAR(150);
PRIMARY KEY Beliryerek Tablo Oluşturma
CREATE TABLE test1 (
    id int(11),
    isim VARCHAR(100),
    PRIMARY KEY (id)
);
İkili Primary Key Belirleme
CREATE TABLE test2 (
    id int(11),
    isim VARCHAR(100),
    PRIMARY KEY (id,isim)
);
PRIMARY KEY Silme
ALTER TABLE test2 DROP PRIMARY KEY;
PRIMARY KEY Silme
ALTER TABLE test2 ADD PRIMARY KEY (id);
Birden Fazla Tabloyu Silmek
DROP TABLES test, test1, test2;
AUTO_INCREMENT
CREATE TABLE test (
	id INT(11) AUTO_INCREMENT,
	isim VARCHAR(50),
	PRIMARY KEY (id)
)
NOT NULL
CREATE TABLE test (
	id INT(11) AUTO_INCREMENT,
	isim VARCHAR(50) NOT NULL,
	soyisim VARCHAR(50) NOT NULL,
	PRIMARY KEY (id)
)
CHARSET AYARLAMA
CREATE TABLE test (
	id INT(11) AUTO_INCREMENT,
	isim VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
	soyisim VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	PRIMARY KEY (id)
)
CHARSET ve NOT NULL Günceleme
  • ALTER TABLE test CHANGE isim isim #isim değiştirmediğimiz için iki kere isim yazıyoruz VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_turkish_ci NULL DEFAULT NULL;
Varsayılan Değer Atama
ALTER TABLE test 
    CHANGE isim isim #isim değiştirmediğimiz için iki kere isim yazıyoruz
    VARCHAR(50) 
    CHARACTER SET utf8 COLLATE utf8_turkish_ci 
    NULL DEFAULT 'isimsiz_kisi';
Sütun Açıklaması
ALTER TABLE test 
    CHANGE isim isim #isim değiştirmediğimiz için iki kere isim yazıyoruz
    VARCHAR(50) 
    CHARACTER SET utf8 COLLATE utf8_turkish_ci 
    NULL DEFAULT 'isimsiz_kisi';
Previous
Next

Lesson discussion

Swap insights and ask questions about “PHP Temel”.

Enroll to participate
Start the course to unlock the discussion. Enrolling helps us keep conversations relevant to learners.
Cohorts
WebsiteDiscoverBlogPatika.devRise In
CoursesCircleRustSoliditySolanaWeb3 FundamentalsBlockchain Basics
CompanyAbout UsTerms of UsePrivacy PolicyGDPR NoticeCookies
Don't miss any update!

Disclaimer: The information, programs, and events provided on https://cohorts.patika.dev is strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice, nor do we make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://cohorts.patika.dev disclaims any responsibility for financial decisions made by users based on the information provided here.

© 2026 Cohorts, All rights reserved