sql — PHP в Oracle Дата Предупреждение

Я получаю предупреждение ORA-00917: пропущена запятая в строке, отмеченной ниже, что означает, что это происходит в моем запросе. Однако я много раз просматривал свой запрос и, похоже, не могу найти эту «пропущенную запятую». Спасибо за ваше время. «Предупреждение:
oci_execute () [function.oci-execute]: ORA-00917: отсутствует запятая
в»

if(isset($_POST['submit']))
{
$db = oci_connect('user', 'password, "server/host");
$Notes = kFile($_POST["notes"]);
if(empty($_POST["composite"])){$composite = "No";}else{$composite = "Yes";}
$techName = $_POST['techName'];
$setupDate = $_POST['setupdate'];
$removalDate = $_POST['removaldate'];
$startDate = $_POST['startdate'];
$stopDate = $_POST['stopdate'];
$sampleLocation = $_POST['samplelocation'];
$serialN = $_POST['serialn'];
$filterN = $_POST['filtern'];
$initialFlow = $_POST['initialflow'];
$timerStop = $_POST['timerstop'];
$finalFlow = $_POST['finalflow'];
$timerStart = $_POST['timerstart'];
$finalWeight = $_POST['finalweight'];
$temperature = $_POST['temperature'];
$initialWeight = $_POST['initialweight'];
$atmPressure = $_POST['atmpressure'];
$filterLoad = $_POST['filterload'];

$query = "INSERT INTO DATA(
TECHNICIAN_NAME,
SAMPLE_LOCATION,
SERIAL_NUM,
FILTER_NUM,
START_DATE,
START_TIME,
STOP_DATE,
STOP_TIME,
INITIAL_FLOW,
FINAL_FLOW,
TIMER_STOP,
TIMER_START,
FINAL_WEIGHT,
INITIAL_WEIGHT,
TEMPERATURE,
ATM_PRESSURE,
COMMENTS,
NOT_IN_COMPOSITE,
FILTER_LOAD,
SET_UP_DATE,
REMOVAL_DATE)
VALUES(
:name, :sample, :serial, :filter, TO_DATE(:startDate, 'mm/dd/yyyy'), TO_DATE(:startTime, 'mm/dd/yyyy'),
TO_DATE(:stopDate, 'mm/dd/yyyy'), TO_DATE(:stopTime, 'mm/dd/yyyy'), :initialFlow, :finalFlow, :timerStop,
:timerStart, :finalWeight, :initialWeight, :temperature, :atmPressure,
:comments, :composite, :filterLoad, TO_DATE(:setup, 'mm/dd/yyyy'), TO_DATE(:removal, 'mm/dd/yyyy'))";

$compiled = oci_parse($db, $query);

oci_bind_by_name($compiled, ':name', $techName);
oci_bind_by_name($compiled, ':sample', $sampleLocation);
oci_bind_by_name($compiled, ':serial', $serialN);
oci_bind_by_name($compiled, ':filter', $filterN);
oci_bind_by_name($compiled, ':startDate', $startDate);
oci_bind_by_name($compiled, ':startTime', $startDate); //redundant check db
oci_bind_by_name($compiled, ':stopDate', $stopDate);
oci_bind_by_name($compiled, ':stopTime', $stopDate); //redundant check db
oci_bind_by_name($compiled, ':initialFlow', $initialFlow);
oci_bind_by_name($compiled, ':finalFlow', $finalFlow);
oci_bind_by_name($compiled, ':timerStop', $timerStop);
oci_bind_by_name($compiled, ':timerStart', $timerStart);
oci_bind_by_name($compiled, ':finalWeight', $finalWeight);
oci_bind_by_name($compiled, ':initialWeight', $initialWeight);
oci_bind_by_name($compiled, ':temperature', $temperature);
oci_bind_by_name($compiled, ':atmPressure', $atmPressure);
oci_bind_by_name($compiled, ':comments', $kosterNotes);
oci_bind_by_name($compiled, ':composite', $composite);
oci_bind_by_name($compiled, ':filterLoad', $filterLoad);
oci_bind_by_name($compiled, ':setup', $setupDate);
oci_bind_by_name($compiled, ':removal', $removalDate);

oci_execute($compiled); //warning occurs here
echo "Did I execute?";
}

Спасибо за поиск.

0

Решение

Похоже, вы пропустили последнюю скобку в запросе; тот, который будет вмещать VALUES список:

$query = "INSERT INTO ... VALUES(..., TO_DATE(:removal, 'mm/dd/yyyy')";
need one more parenthesis here  ^

Исправлена:

$query = "INSERT INTO ... VALUES(..., TO_DATE(:removal, 'mm/dd/yyyy'))";
here it is  ^
0

Другие решения

Посмотрите на выделение текста в вашем вопросе выше. Затем посмотрите на третью строку кода, где вы устанавливаете свой пароль. Обратите внимание, что отсутствует одинарная кавычка. Любой хороший редактор кода должен сделать эту проблему очевидной.

0