Я новичок в базе данных Oracle. Я создал таблицу в Oracle. Я могу получить некоторое значение из HTML с помощью PHP, используя $_POST[]
, и соединение работает нормально.Предупреждение: oci_execute(): ORA-01821: формат даты не распознан
Теперь я хочу сохранить текущую дату с PHP в таблицу Oracle как тип даты. Но я не знаю, как правильно связать даты, и я получаю эту ошибку:
Вот код:
$year = $_POST["SALYR"];
$month = $_POST["SALMT"];
$empID = $_POST["EMPID"];
$dptCode = $_POST["DPTID"];
$salHD = 'A9';
$description = $_POST["DESCR"];
$amount = $_POST["ALAMT"];
$optID = 111;
$trDate = date("Y/m/d", strtotime(date("Y/m/d")));
$query = "INSERT INTO PAYROLLFILE VALUES (:bind1, :bind2, :bind3, :bind4, :bind5, :bind6, :bind7, :bind8, to_date(:bind9 ,'Y/m/d'))";
$stid = oci_parse($conn, $query);
oci_bind_by_name($stid, ":bind1", $year);
oci_bind_by_name($stid, ":bind2", $month);
oci_bind_by_name($stid, ":bind3", $empID);
oci_bind_by_name($stid, ":bind4", $dptCode);
oci_bind_by_name($stid, ":bind5", $salHD);
oci_bind_by_name($stid, ":bind6", $description);
oci_bind_by_name($stid, ":bind7", $amount);
oci_bind_by_name($stid, ":bind8", $optID);
oci_bind_by_name($stid, ":bind9", $trDate); //it is line 46
$r = oci_execute($stid); //it is line 47
Пожалуйста, скажите мне, где я сделал ошибку синтаксиса в преобразовании даты Oracle.
благодаря Сработало вы можете сказать мне, что было неправильным, что только синтаксис или любые function.thanks – user5005768
Вы пропускаете маску формата формата даты оракула. вы используете to_date (: bind9, 'Y/m/d')) ", но это неправильно. Одиночный Y или один m или один d не поддерживается в oracle. –