Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

oci_bind_by_name và to_date PHP / OCI / Oracle

Bạn đang sử dụng một câu lệnh Oracle với các tham số ràng buộc. Điều đó tốt vì nó ngăn chặn việc tiêm SQL nơi mã nguy hiểm được chèn vào câu lệnh SQL của bạn. Tuy nhiên, trong trường hợp này, nó ngăn TO_CHAR chức năng đang được thực thi. Thay vào đó, nó cố gắng chuyển toàn bộ chuỗi thành một dấu thời gian, tất nhiên là không hoạt động.

Giải pháp khá đơn giản:chuyển đến TO_CHAR hàm cách xa tham số bị ràng buộc trực tiếp vào câu lệnh:

$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. verify_queryable_inventory được trả về ORA-20008:Đã hết thời gian chờ

  2. Cách trừ 2 ngày trong tiên tri để có kết quả theo giờ và phút

  3. Loại bỏ các bản sao bằng cách sử dụng hàm LISTAGG của Oracle

  4. PLSQL JDBC:Làm thế nào để lấy ID hàng cuối cùng?

  5. Làm cách nào để mô tả một bảng trong Oracle mà không sử dụng lệnh DESCRIBE?