PDO::quote
Memproses string untuk digunakan dalam kueri dengan menempatkan tanda kutip di sekitar string input seperti yang diperlukan oleh database SQL Server yang mendasarinya. PDO::quote akan meloloskan karakter khusus dalam string input menggunakan gaya kutipan yang sesuai dengan SQL Server.
Sintaks
string PDO::quote( $string[, $parameter_type ] )
Parameter
$string: String yang akan dikutip.
$parameter_type: Simbol opsional (bilangan bulat) yang menunjukkan jenis data. Defaultnya adalah PDO::P ARAM_STR.
Konstanta PDO baru diperkenalkan di PHP 7.2 untuk menambahkan dukungan untuk mengikat string Unicode dan non-Unicode. String Unicode dapat dikelilingi dengan tanda kutip dengan N sebagai awalan (yaitu N'string' alih-alih 'string').
- PDO::P ARAM_STR_NATL - jenis baru untuk string Unicode, untuk diterapkan sebagai bitwise-OR ke PDO::P ARAM_STR
- PDO::P ARAM_STR_CHAR - jenis baru untuk string non-Unicode, untuk diterapkan sebagai bitwise-OR ke PDO::P ARAM_STR
- PDO::ATTR_DEFAULT_STR_PARAM - atur ke PDO::P ARAM_STR_NATL atau PDO::P ARAM_STR_CHAR untuk menunjukkan nilai ke bitwise-OR ke PDO::P ARAM_STR secara default
Dimulai dengan versi 5.8.0, Anda dapat menggunakan konstanta ini dengan PDO::quote.
Tampilkan Nilai
String yang dikutip yang dapat diteruskan ke pernyataan SQL, atau false jika gagal.
Keterangan
Dukungan untuk PDO ditambahkan di Driver Microsoft versi 2.0 untuk PHP untuk SQL Server.
Contoh escape string
<?php
$database = "test";
$server = "(local)";
$conn = new PDO( "sqlsrv:server=$server ; Database = $database", "", "");
$param = 'a \' g';
$param2 = $conn->quote( $param );
$query = "INSERT INTO Table1 VALUES( ?, '1' )";
$stmt = $conn->prepare( $query );
$stmt->execute(array($param));
$query = "INSERT INTO Table1 VALUES( ?, ? )";
$stmt = $conn->prepare( $query );
$stmt->execute(array($param, $param2));
?>
Contoh kutipan PDO
Skrip berikut menunjukkan beberapa contoh bagaimana jenis string yang diperluas memengaruhi PDO::quote() dengan PHP 7.2+.
<?php
$database = "test";
$server = "(local)";
$db = new PDO("sqlsrv:server=$server; Database=$database", "", "");
$db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL); // N'über'
$db->quote('foo'); // 'foo'
$db->setAttribute(PDO::ATTR_DEFAULT_STR_PARAM, PDO::PARAM_STR_NATL);
$db->quote('über'); // N'über'
$db->quote('foo', PDO::PARAM_STR | PDO::PARAM_STR_CHAR); // 'foo'
?>