Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

oci_bind_by_name dan to_date PHP/OCI/Oracle

Anda menggunakan pernyataan Oracle dengan parameter terikat. Itu bagus karena mencegah injeksi SQL di mana kode berbahaya dimasukkan ke dalam pernyataan SQL Anda. Namun, dalam kasus ini, ini mencegah TO_CHAR fungsi dari dieksekusi. Sebagai gantinya, ia mencoba mengubah seluruh string menjadi stempel waktu, yang tentu saja tidak berhasil.

Solusinya cukup mudah:pindah ke TO_CHAR fungsi jauh dari parameter terikat langsung ke pernyataan:

$REGISTERED_TIMESTAMP = "15-08-2011 14:32:37";

$query =    "INSERT INTO ".$db_schema.".ARTIFACTS (ARTIFACT_ID, ARTIFACT_NAME, ARTIFACT_TYPE, ARTIFACT_LOCATION, ARTIFACT_DOMAIN, ARTIFACT_AUTHOR, ARTIFACT_LABEL, AUDIT_CONSTRAINTS, SECURITY_CONSTRAINTS, REGISTERED_EMAIL, REGISTERED_TIMESTAMP)
            VALUES (:bind1, :bind2, :bind3, :bind4, :bind5, :bind6, :bind7, :bind8,
               :bind9, :bind10, to_date(:bind11, 'DD-MM-YYYY HH24:MI:SS'))";



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan 'kolom ekspresi kasus' di mana klausa

  2. koneksi database oracle di web.config asp.net

  3. Cara Menghapus Nol ketika Bagian Integer adalah Nol di Oracle

  4. Memulai Oracle Autonomous Database di Cloud

  5. Menggunakan tanggal dalam batasan pemeriksaan, Oracle