CakeFest 2024: The Official CakePHP Conference

Öntanımlı Sabitler

Buradaki sabitler bu eklenti için tanımlanmış olup, sadece eklentinin PHP içinde derlenmiş olması veya çalışma anında dinamik olarak yüklenmesi halinde kullanılabilir.

PDO::PARAM_BOOL (int)
Mantıksal veri türünü ifade eder.
PDO::PARAM_NULL (int)
SQL NULL veri türünü ifade eder.
PDO::PARAM_INT (int)
SQL INTEGER veri türünü ifade eder.
PDO::PARAM_STR (int)
SQL CHAR, VARCHAR ve benzeri dizge veri türlerini ifade eder.
PDO::PARAM_STR_NATL (int)
Dizgenin ulusal karakter kümesini kullanacağını belirtir. PHP 7.2.0'dan beri kullanılabilir.
PDO::PARAM_STR_CHAR (int)
Dizgenin normal karakter kümesini kullanacağını belirtir. PHP 7.2.0'dan beri kullanılabilir.
PDO::PARAM_LOB (int)
SQL büyük nesne veri türünü ifade eder.
PDO::PARAM_STMT (int)
Kayıt kümesi (recordset) türünü ifade eder. Her sürücü desteklemez.
PDO::PARAM_INPUT_OUTPUT (int)
Bağımsız değişkenin bir saklı yordam için bir girdi/çıktı bağımsız değişkeni olduğunu gösterir. Bu değeri bir PDO::PARAM_* veri türü ile bit seviyesinde VEYAlamanız gerekir.
PDO::FETCH_DEFAULT (int)
Kullanılacak öntanımlı fetch kipini belirtir. PHP 8.0.7 ve sonrasında kullanılabilir.
PDO::FETCH_LAZY (int)
Yöntemin, sonuç kümesindeki her satırı, değişken isimlerinin sütun isimlerine karşılık geldiği bir nesne olarak döndüreceğini belirtir. PDO::FETCH_LAZY sütun isimlerine nesnenin değişkenleri olarak erişilebilmesini sağlar. PDOStatement::fetchAll() içinde geçersizdir.
PDO::FETCH_ASSOC (int)
Yöntemin, sonuç kümesindeki her satırının, sütun isimleriyle indislenmiş bir dizi olarak döndürüleceğini belirtir. Eğer sonuç kümesi aynı isimde birden fazla sütun içeriyorsa her sütun için tek bir değer döner.
PDO::FETCH_NAMED (int)
Yöntemin, sonuç kümesindeki her satırının, sütun isimleriyle indislenmiş bir dizi olarak olarak döndüreleceğini belirtir. Eğer sonuç kümesi aynı isimde birden fazla sütun içeriyorsa her sütun için bir değerler dizisi döner.
PDO::FETCH_NUM (int)
Yöntemin, sonuç kümesindeki her satırının, sütun numaralarıyla indislenmiş bir dizi olarak olarak döndüreleceğini belirtir. İlk sütunun indisi 0'dır.
PDO::FETCH_BOTH (int)
Yöntemin, sonuç kümesindeki her satırının, hem sütun isimleriyle hem de sütun numaralarıyla indislenmiş bir dizi olarak olarak döndürüleceğini belirtir. İlk sütunun indisi 0'dır.
PDO::FETCH_OBJ (int)
Yöntemin, sonuç kümesindeki her satırının, özellik isimlerinin sütun isimlerine karşılık geldiği bir nesne olarak döndüreceğini belirtir.
PDO::FETCH_BOUND (int)
Yöntemin, sonuç kümesindeki sütun değerlerini PDOStatement::bindParam() veya PDOStatement::bindColumn() yönteminde SQL bağımsız değişkenleri ile ilişkilendirilip PHP değişkenlerine atanacağını ve true döndürüleceğini belirtir.
PDO::FETCH_COLUMN (int)
Yöntemin, sonuç kümesindeki sonraki satırdan istenen tek bir sütunu döndüreceğini belirtir.
PDO::FETCH_CLASS (int)
Yöntemin, sınıf özellikleri sütun isimleriyle eşlenerek elde edilen sınıfın yeni bir örneğini döndüreceğini belirtir.

Bilginize: İstenen sınıf içinde özellik mevcut değilse sihirli __set() yöntemi çağrılır.

PDO::FETCH_INTO (int)
Yöntemin, sınıf özellikleri sütun isimleriyle eşlenerek elde edilen sınıfın mevcut bir örneğini güncelleyeceğini belirtir.
PDO::FETCH_FUNC (int)
Verinin anında işlenmesi yoluyla tamamen özelleştirmeye izin verir (sadece PDOStatement::fetchAll() içinde geçerlidir).
PDO::FETCH_GROUP (int)
Grup değer olarak döner. Normal olarak PDO::FETCH_COLUMN veya PDO::FETCH_KEY_PAIR ile birlikte.
PDO::FETCH_UNIQUE (int)
Sadece eşsiz değerleri getirir.
PDO::FETCH_KEY_PAIR (int)
İlk sütunun anahtar diğer sütunların ise birer değer olduğu bir dizi döner.
PDO::FETCH_CLASSTYPE (int)
Sütun ismini ilk sütunun değerinden belirler.
PDO::FETCH_SERIALIZE (int)
Nesnenin dizgeleştirilmiş olarak döndürülmesi dışında PDO::FETCH_INTO gibidir. Bu seçenek etkinken sınıf kurucusu asla çağrılmamaktadır. PHP 8.1.0 ve sonrasında kullanımı önerilmiyor.
PDO::FETCH_PROPS_LATE (int)
Özellikler değiştirilmeden önce kurucuyu çağırır.
PDO::ATTR_AUTOCOMMIT (int)
false olduğu takdirde, PDO otomatik veri gönderimini iptal eder, böylece bağlantı bir veri hareketi (transaction) başlatır.
PDO::ATTR_PREFETCH (int)
Önalım boyutunun ayarlanması uygulamanızın bellek kullanım hızını dengeleyebilmenizi sağlar. Her veritabanı/sürücü önalım boyutunun ayarlanmasına izin vermez. Önalım boyutu ne kadar büyük seçilirse yüksek bellek kullanımı pahasına başarım o kadar artar.
PDO::ATTR_TIMEOUT (int)
Veritabanıyla iletişim zaman aşımını belirlemek için kullanılır.
PDO::ATTR_ERRMODE (int)
Bu sabit ile ilgili bilgi için Hatalar ve Ele Alınışları bölümüne bakınız.
PDO::ATTR_SERVER_VERSION (int)
Bu salt okunur bir özelliktir. PDO'nun bağlı olduğu veritabanı sunucusunun sürüm bilgisini döndürür.
PDO::ATTR_CLIENT_VERSION (int)
Bu salt okunur bir özelliktir. PDO sürücüsünün kullandığı istemci kütüphanesinin sürüm bilgisini döndürür.
PDO::ATTR_SERVER_INFO (int)
Bu salt okunur bir özelliktir. PDO'nun bağlı olduğu veritabanı sunucusu hakkında bazı temel bilgileri döndürür.
PDO::ATTR_CONNECTION_STATUS (int)
PDO::ATTR_CASE (int)
Sütun isimlerindeki harflerin PDO::CASE_* sabitlerine göre belirtilmesini sağlar.
PDO::ATTR_CURSOR_NAME (int)
Bir gösterici için kullanılacak ismi tanımlar veya döndürür. Kaydırılabilir göstericiler ve konum belirterek yapılan güncelemeler için çok kullanışlıdır.
PDO::ATTR_CURSOR (int)
Gösterici türünü seçer. Desteklenen gösterici türleri: PDO::CURSOR_FWDONLY ve PDO::CURSOR_SCROLL. İhtiyacınızın kaydırılabilir bir gösterici olup olmadığına dair bir fikriniz yoksa seçiminizi PDO::CURSOR_FWDONLY sabitinden yana kullanın.
PDO::ATTR_DRIVER_NAME (int)
Sürücü ismini döndürür.

Örnek 1 - PDO::ATTR_DRIVER_NAME kullanımı

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo
"Burada mysql üzerinde mysql'e özgü bir şeyler yapılıyor\n";
}
?>

PDO::ATTR_ORACLE_NULLS (int)
Veri alınırken SQL NULL değerleri boş dizgelere dönüştürür.
PDO::ATTR_PERSISTENT (int)
Yeni bir bağlantı oluşturmak yerine kalıcı bir bağlantı ister. Ayrıntılı bilgi için Bağlantılar ve Bağlantı Yönetimi sayfasına bakınız.
PDO::ATTR_STATEMENT_CLASS (int)
Deyimlerin döndürüleceği sınıf adını tanımlar.
PDO::ATTR_FETCH_CATALOG_NAMES (int)
Sonuç kümesinde döndürülen her sütun isminin başına katalog ismini yerleştirir. Katalog ismi ile sütun ismi arasına bir nokta konur. Bu özellik sürücü seviyesinde desteklenir; kullandığınız sürücü bu özelliği desteklemeyebilir.
PDO::ATTR_FETCH_TABLE_NAMES (int)
Sonuç kümesinde döndürülen her sütun isminin başına tablo ismini yerleştirir.Tablo ismi ile sütun ismi arasına bir nokta konur. Bu özellik sürücü seviyesinde desteklenir; kullandığınız sürücü bu özelliği desteklemeyebilir.
PDO::ATTR_STRINGIFY_FETCHES (int)
Getirilen tüm değerlerin dizge olarak değerlendirilmesini sağlar.
PDO::ATTR_MAX_COLUMN_LEN (int)
Azami sütun uzunluğunu belirler.
PDO::ATTR_DEFAULT_FETCH_MODE (int)
PDO::ATTR_EMULATE_PREPARES (int)
PDO::ATTR_DEFAULT_STR_PARAM (int)
Dizge bağımsız değişkenin öntanımlı türünü belirler. Değer olarak sadece PDO::PARAM_STR_NATL veya PDO::PARAM_STR_CHAR atanabilir. PHP 7.2.0'dan beri kullanılabilir..
PDO::ERRMODE_SILENT (int)
Bir hata oluştuğunda bir istisna veya bir hata döndürülmez. Geliştiricinin hataları yakalayıp gereğini yapacağı varsayılır. Bu öntanımlı kiptir. Bu özellik ile ilgili ayrıntılı bilgi için Hatalar ve Ele Alınışları sayfasına bakınız.
PDO::ERRMODE_WARNING (int)
Bir hata oluştuğunda bir PHP E_WARNING iletisi çıktılanır. Bu özellik ile ilgili ayrıntılı bilgi için Hatalar ve Ele Alınışları sayfasına bakınız.
PDO::ERRMODE_EXCEPTION (int)
Bir hatanın oluşması bir PDOException istisnası ile sonuçlanır. Bu özellik ile ilgili ayrıntılı bilgi için Hatalar ve Ele Alınışları sayfasına bakınız.
PDO::CASE_NATURAL (int)
Sütun isimleri veritabanı sürücüsünün döndürdüğü haliyle bırakılır.
PDO::CASE_LOWER (int)
Sütun isimlerinin küçük harflerle yazılmasına sebep olur.
PDO::CASE_UPPER (int)
Sütun isimlerinin büyük harflerle yazılmasına sebep olur.
PDO::NULL_NATURAL (int)
PDO::NULL_EMPTY_STRING (int)
PDO::NULL_TO_STRING (int)
PDO::FETCH_ORI_NEXT (int)
Sonuç kümesindeki sonraki satırı döndürür. Sadece kaydırılabilir göstericiler için geçerlidir.
PDO::FETCH_ORI_PRIOR (int)
Sonuç kümesindeki önceki satırı döndürür. Sadece kaydırılabilir göstericiler için geçerlidir.
PDO::FETCH_ORI_FIRST (int)
Sonuç kümesindeki ilk satırı döndürür. Sadece kaydırılabilir göstericiler için geçerlidir.
PDO::FETCH_ORI_LAST (int)
Sonuç kümesindeki son satırı döndürür. Sadece kaydırılabilir göstericiler için geçerlidir.
PDO::FETCH_ORI_ABS (int)
İstenen satırı sonuç kümesindeki satır numarasına göre döndürür. Sadece kaydırılabilir göstericiler için geçerlidir.
PDO::FETCH_ORI_REL (int)
İstenen satırı, göstericinin sonuç kümesindeki konumuna göreli olarak döndürür. Sadece kaydırılabilir göstericiler için geçerlidir.
PDO::CURSOR_FWDONLY (int)
Sadece ileri yönde hareket eden bir göstericiye sahip bir PDOStatement nesnesi oluşturur. PHP'deki en hızlı ve en çok kullanılan veriye erişim yöntemi olarak bu gösterici öntanımlı göstericidir.
PDO::CURSOR_SCROLL (int)
Kaydırılabilir göstericili bir PDOStatement nesnesi oluşturur. Satırların sonuç kümesinden nasıl döndürüleceğini belirtmek için PDO::FETCH_ORI_* sabitlerini kullanın.
PDO::ERR_NONE (string)
SQL deyiminin hatasız ve uyarısız başarıyla çalıştırıldığı anlamına gelen SQLSTATE '00000' karşılığıdır. Bir hata oluştuğunda hatayı PDO::errorCode() veya PDOStatement::errorCode() ile saptarken kolaylık olsun diye bu sabit vardır. Bunu normal olarak yöntemden dönen kodu inceleyerek saptayabilirsiniz.
PDO::PARAM_EVT_ALLOC (int)
Kaynak ayırma olayı.
PDO::PARAM_EVT_FREE (int)
Ayrılan kaynağı serbest bırakma olayı.
PDO::PARAM_EVT_EXEC_PRE (int)
Bir hazır deyimi çalıştırmadan önce tetiklenen olay.
PDO::PARAM_EVT_EXEC_POST (int)
Bir hazır deyimi çalıştırıldıktan hemen sonra tetiklenen olay.
PDO::PARAM_EVT_FETCH_PRE (int)
Bir sonuç kümesinden bir sonucun alınmasından önce tetiklenen olay.
PDO::PARAM_EVT_FETCH_POST (int)
Bir sonuç kümesinden bir sonucun alınmasının ardından tetiklenen olay.
PDO::PARAM_EVT_NORMALIZE (int)
Sürücünün bağımsız değişken isminin normalleştirilmesini sağlamak için ilişkili bağımsız değişkenin kayda geçirilmesi sırasında tetiklenen olay.
PDO::SQLITE_DETERMINISTIC (int)
PDO::sqliteCreateFunction() ile oluşturulan işlevin belirlenimsel olduğunu belirtir. Yani SQL deyiminin belli bir girdi için daima belli bir sonucu döndüreceğini belirtir. (PHP 7.1.4 ve sonrasında mevcuttur.)
add a note

User Contributed Notes 8 notes

up
21
sam at xnet dot tk
11 years ago
It should be noted that PDO::FETCH_CLASS will call the constructor *after* setting the values (or calling __set).
up
5
kevin at kevinlocke dot name
4 years ago
PDO::PARAM_STR_CHAR and PDO::PARAM_STR_NATL must be combined with PDO::PARAM_STR using bitwise-OR for parameter binding.

These flags control value quoting (e.g. PDO::quote) and, in some situations (see below), parameter binding (e.g. PDO::bindParam, PDO::bindValue) to prefix string literals with N'' as defined in SQL-92. As of PHP 7.3, only dblib and mysql support these flags. For the mysql driver, the flags only affect parameter binding when PDO::ATTR_EMULATE_PREPARES is true (the default).

MySQL and MariaDB interpret string literals prefixed with N as being utf8 (not utf8mb4) regardless of `SET NAMES` or the charset parameter. This can cause problems if the database/table/column charset is not utf8. For example, in a database using utf8mb4, the query "SELECT * FROM table WHERE col = :param" and bindValue(":param", "\u{1F600}", PDO::PARAM_STR | PDO::PARAM_STR_NATL) will cause "PDOException: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='". Using PDO::PARAM_STR without PDO::PARAM_STR_NATL and ensuring the charset DSN parameter is set correctly can avoid this issue.

See:
https://wiki.php.net/rfc/extended-string-types-for-pdo
https://mariadb.com/kb/en/library/string-literals/
https://dev.mysql.com/doc/refman/8.0/en/string-literals.html
up
4
todd at toddwiggins dot com dot au
4 years ago
Reference to all the PDO::MYSQL_* constants is available in MySQL's documentation for the driver here: https://dev.mysql.com/doc/connectors/en/apis-php-pdo-mysql.html

Such as the ones I was looking for PDO::MYSQL_ATTR_SSL_CA and PDO::MYSQL_ATTR_SSL_CAPATH which are not listed on this page.
up
2
Sbastien
3 years ago
PDO::FETCH_UNIQUE not only fetches the unique values, it also uses the first SQL column as array key result, what is very useful for create quickly an index, eg :

<?php

$sql
= <<<SQL
SELECT ALL
c1, -- For result indexing
c1, c2
FROM (
VALUES
ROW('ID-1', 'Value 1'),
ROW('ID-2', 'Value 2a'),
ROW('ID-2', 'Value 2b'),
ROW('ID-3', 'Value 3')
) AS t (c1, c2);
SQL;
$result = $pdo->query($sql);
print_r($result->fetchAll(PDO::FETCH_UNIQUE));

/*
Gives :
ID-1 => [c1 => ID-1, c2 => Value 1]
ID-2 => [c1 => ID-2b, c2 => Value 2b]
ID-3 => [c1 => ID-3, c2 => Value 3]
*/

?>
up
5
Oleg Andreyev
7 years ago
Default value for \PDO::ATTR_TIMEOUT is 30 seconds.
Ref.: https://github.com/php/php-src/blob/PHP-7.1.0/ext/pdo_mysql/mysql_driver.c#L600
up
0
happy dot job7348 at fastmail dot com
2 months ago
To bind a float, use PDO::PARAM_STR with bindValue. You can skip the PDO::PARAM_STR because it's the default option. Binding with bindParam will change the type of the bound variable to a string, which can lead to type errors.
up
0
Rexana
1 year ago
Reference for PDO MySQL constants Todd mentioned have moved to here: https://www.php.net/manual/en/ref.pdo-mysql.php

This includes documentation on constants like PDO::MYSQL_ATTR_SSL_CA, PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT, and more.
up
-5
ko dot izawa at gmail dot com
7 years ago
When you use REAL type column on SQLite, your setting of pdo parameter of bindValue() is PDO::PARAM_STR.

'''
$stmt->bindValue(':elapse_time', $e_time, PDO::PARAM_STR);
'''
To Top