Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PDO:Berikan fungsi MySQL ke bindValue/bindParam

Tidak. Parameter kueri hanya menggantikan satu nilai konstanta. Misalnya, konstanta numerik atau string atau tanggal literal.

Yang lainnya -- nama kolom, nama tabel, kata kunci SQL, fungsi, ekspresi -- harus ada dalam string SQL pada waktu penguraian.

Kembali komentar Anda:

Anda harus memahami bahwa parameter bukan hanya kenyamanan untuk menginterpolasi string tambahan ke dalam SQL Anda. PREPARE analog dengan fase kompilasi untuk Java atau C#, sedangkan EXECUTE analog dengan menjalankan kode yang dikompilasi.

Waktu persiapan adalah saat RDBMS melakukan pengecekan sintaks, dan juga validasi referensi. Ini harus memberikan kesalahan jika Anda memberi nama tabel yang tidak ada, atau memanggil fungsi yang tidak ada.

Anda tidak dapat meneruskan nama tabel atau panggilan fungsi sebagai parameter karena RDBMS tidak akan dapat memvalidasi referensi tersebut pada waktu persiapan. Anda seharusnya tidak dapat menggunakan parameter kueri untuk mengubah sintaks pernyataan, atau memperkenalkan tabel atau fungsi yang tidak valid.

Jadi placeholder parameter harus berupa elemen sintaksis yang tidak dapat direduksi yang tidak pernah menjadi referensi yang tidak valid, yaitu nilai literal tunggal -- angka atau string.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menentukan apakah kueri pembaruan MySQL berhasil ketika data yang dikirimkan dalam kueri sama dengan yang sudah ada di database?

  2. Database mengembalikan nilai yang tidak valid di QuerySet.dates()

  3. Masukkan beberapa baris ke mysql (item dipisahkan dengan koma)

  4. cara mendapatkan data json dari permintaan posting iphone

  5. Sesuatu yang lebih cepat dari get_headers()