Bagikan melalui


PDOStatement::bindValue

Unduh driver PHP

Mengikat nilai ke tempat penampung bernama atau tanda tanya dalam pernyataan SQL.

Sintaks

  
bool PDOStatement::bindValue($parameter, $value[, $data_type]);  

Parameter

$parameter: Pengidentifikasi parameter (campuran). Untuk pernyataan menggunakan tempat penampung bernama, gunakan nama parameter (:name). Untuk pernyataan yang disiapkan menggunakan sintaks tanda tanya, ini adalah indeks parameter berbasis 1.

$nilai: Nilai (campuran) untuk mengikat parameter.

$data_type: Jenis data opsional (bilangan bulat) yang diwakili oleh konstanta PDO::P ARAM_*. Defaultnya adalah PDO::P ARAM_STR.

Tampilkan Nilai

TRUE pada keberhasilan, jika tidak FALSE.

Keterangan

Dukungan untuk PDO ditambahkan di Driver Microsoft versi 2.0 untuk PHP untuk SQL Server.

Contoh parameter

Contoh ini menunjukkan bahwa setelah nilai $contact terikat, mengubah nilai tidak mengubah nilai yang diteruskan dalam kueri.

<?php  
$database = "AdventureWorks";  
$server = "(local)";  
$conn = new PDO("sqlsrv:server=$server ; Database = $database", "", "");  
  
$contact = "Sales Agent";  
$stmt = $conn->prepare("select * from Person.ContactType where name = ?");  
$stmt->bindValue(1, $contact);  
$contact = "Owner";  
$stmt->execute();  
  
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {  
   print "$row[Name]\n\n";  
}  
  
$stmt = null;  
$contact = "Sales Agent";  
$stmt = $conn->prepare("select * from Person.ContactType where name = :contact");  
$stmt->bindValue(':contact', $contact);  
$contact = "Owner";  
$stmt->execute();  
  
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {  
   print "$row[Name]\n\n";  
}  
?>  

Catatan

Disarankan untuk menggunakan string sebagai input saat mengikat nilai ke kolom desimal atau numerik untuk memastikan presisi dan akurasi karena PHP memiliki presisi terbatas untuk angka titik float. Hal yang sama berlaku untuk kolom bigint, terutama ketika nilai berada di luar rentang bilangan bulat.

Contoh input desimal

Sampel kode ini menunjukkan cara mengikat nilai desimal sebagai parameter input.

<?php  
$database = "Test";  
$server = "(local)";  
$conn = new PDO("sqlsrv:server=$server ; Database = $database", "", "");  

// Assume TestTable exists with a decimal field 
$input = 9223372036854.80000;
$stmt = $conn->prepare("INSERT INTO TestTable (DecimalCol) VALUES (?)");
// by default it is PDO::PARAM_STR, rounding of a large input value may
// occur if PDO::PARAM_INT is specified
$stmt->bindValue(1, $input, PDO::PARAM_STR);
$stmt->execute();

Lihat juga

Kelas PDOStatement

PDO