(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.1)
PDO::quote — Bir sorguda kullanılmak üzere bir dizgeyi önceler
Girdi dizgesine gerekiyorsa ilgili veritabanı sürücüsüne uygun bir önceleme uygular.
Bu işlevi SQL deyimlerini oluştururken kullanıyorsanız, kullanıcı girdisini bir SQL deyimi haline getirmek için PDO::quote() yerine PDO::prepare() ile bağımsız değişkenleri ilişkilendirilmiş SQL deyimleri hazırlamanızı hararetle öneririz. Bağımsız değişkenlerle ilişkilendirimiş hazır deyimler taşınabilir olmaktan başka daha kullanışlı ve SQL zerkine bağışık olmanın yanında sorgunun derlenmiş hali hem sunucuda hem de istemcide bulunduğundan yorumlanan sorgulardan çok daha hızlıdır.
PDO sürücülerinin hepsi bu yöntemi gerçeklemez. (özellikle PDO_ODBC) Bu bakımdan hazır deyimleri kullanmaya hazır olmalısınız.
Karakter kümesi, PDO::quote()'u etkilemesi için ya sunucu seviyesinde ya da (sürücüye bağlı olarak) veritabanı bağlantısının kendisinde ayarlanmalıdır. Daha fazla bilgi için sürücüye özel belgelere bakılabilir.
dizge
Öncelenecek dizge.
tür
İkincil bir önceleme tarzı olan sürücülere veri türü olarak bir ipucu
sağlar. Örneğin, PDO_PARAM_LOB
sabiti sürücüye
ikil veriyi öncelemesini söyler.
Bir SQL deyiminde aktarılmak üzere teorik olarak güvenli kabul edilen bir
öncelenmiş dizge döndürür. Eğer sürücü bu tarz öncelemeyi desteklemiyorsa
false
döner.
Örnek 1 - Normal bir dizgeyi öncelemek
<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');
/*Basit dizge */
$string = 'Basit';
print "Öncelenmemiş dizge: $string\n";
print "Öncelenmiş dizge: " . $conn->quote($string) . "\n";
?>
Yukarıdaki örneğin çıktısı:
Öncelenmemiş dizge: Basit Öncelenmiş dizge: 'Basit'
Örnek 2 - Tehlikeli bir dizgeyi öncelemek
<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');
/* Tehlikeli dizge */
$string = 'Münasebetsiz \' dizge';
print "Öncelenmemiş dizge: $string\n";
print "Öncelenmiş dizge:" . $conn->quote($string) . "\n";
?>
Yukarıdaki örneğin çıktısı:
Öncelenmemiş dizge: Münasebetsiz ' dizge Öncelenmiş dizge: 'Münasebetsiz '' dizge'
Örnek 3 - Karmaşık bir dizgeyi öncelemek
<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');
/* Karmaşık dizge */
$string = "Co'mpl''ex \"st'\"ring";
print "Öncelenmemiş dizge: $string\n";
print "Öncelenmiş dizge:" . $conn->quote($string) . "\n";
?>
Yukarıdaki örneğin çıktısı:
Öncelenmemiş dizge: Co'mpl''ex "st'"ring Öncelenmiş dizge: 'Co''mpl''''ex "st''"ring'