I have the following:
$ARTIFACT_NAME = $_POST[\'ArtifactName\'];
$ARTIFACT_TYPE = $_POST[\'ArtifactType\'];
$ARTIFACT_LOCATION = $_POST[\'Artifac
You're using an Oracle statement with bound parameters. That's good because it prevents SQL injections where dangerous code is inserted into your SQL statement. However, in this case, it prevents the TO_CHAR
function from being executed. Instead, it tries to convert the whole string into a timestamp, which of course doesnt' work.
The solution is rather straight-forward: move to TO_CHAR
function away from the bound parameter directly into the statement:
$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'))";