Oracle
 sql >> база данни >  >> RDS >> Oracle

oci_bind_by_name и to_date PHP/OCI/Oracle

Използвате израз на Oracle с обвързани параметри. Това е добре, защото предотвратява SQL инжекции, когато опасен код е вмъкнат във вашия SQL израз. В този случай обаче той предотвратява TO_CHAR функция от изпълнение. Вместо това се опитва да преобразува целия низ във времева марка, което разбира се не работи.

Решението е доста просто:преминете към TO_CHAR функция далеч от свързания параметър директно в израза:

$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. База данни за мениджър на пакети GI 19c RPM

  2. Как да експортирате резултата от заявката в Excel в Oracle SQL Developer?

  3. Съобщение за грешка в sqldeveloper:Мрежовият адаптер не можа да установи грешката при връзката

  4. Обяснете болната точка за планиране на разходите

  5. Има ли такова нещо CASE израз в JPQL?