PHP Conference Nagoya 2025

PDO::quote

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.1)

PDO::quoteBir sorguda kullanılmak üzere bir dizgeyi önceler

Açıklama

public PDO::quote(string $dizge, int $tür = PDO::PARAM_STR): string|false

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.

Dikkat

Güvenlik: Öntanımlı karakter kümesi

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.

Bağımsız Değişkenler

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.

Dönen Değerler

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.

Örnekler

Ö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'

Ayrıca Bakınız

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top