Существует хранимая процедура оракула, которую мне нужно вызвать и получить ее выходную переменную, но я не уверен, как это сделать из PHP. Я также использую фреймворк Laravel.
Вот что у меня есть до сих пор.
$db = DB::connection('oracle');
$stmt = $db->getPdo()->prepare("EXEC jgreen.person_match(p_first_name => 'Bob'
, p_last_name => 'Mitchell'
, p_middle_name => ''
, p_birth_date => to_date('1982-02-09', 'YYYY-MM-DD')
, p_gender => null
, p_email => '[email protected]'
, p_phone => null
, p_ssn_last_4 => null
, p_id_out => ?
, p_suspend_out => ?
, p_status_out => ?
, p_message_out => ?)");
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $suspend);
$stmt->bindParam(3, $status);
$stmt->bindParam(4, $message);
$stmt->execute();
echo $status . ' ' . $message . ' ' . $pidm . ' ' . $suspend;
В настоящее время я получаю
oci_bind_by_name(): ORA-01036: недопустимое имя/номер переменной
но я даже не уверен, что правильно построил запрос для начала.
bindParam
используется там, где вторым параметром является строка. Я обновил ответ соответственно. 11.09.2018bindValue
обратно наbindParam
11.09.2018EXEC
наCALL
и посмотрите, изменится ли это. 11.09.2018