powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php) oracle, pl/sql не биндятся переменные
7 сообщений из 7, страница 1 из 1
(php) oracle, pl/sql не биндятся переменные
    #38437618
Nastie91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Вот такая проблема возникла:
Есть запрос к Ораклу, в котором указывается входное значение параметра (типа :name).
Тык вот, когда пишу обработку запроса (обычный select) на php через обычные стандартные функции (oci_connect, oci_parse, oci_bind_by_name, oci_execute, oci_fetch), все прекрасно работает, биндится и выдает нужный результат.
НО! Когда я подобный алгоритм реализую через пользовательский класс Оракла ($oracle->parse($oraQry), $oracle->bind($oraQry, ":name", $name)), то запрос у меня не биндится. Следовательно, никакого результата нет.

Возможно, уже у кого-то была такая проблема. Уже все возможные ошибки посмотрела: переменные все верные указаны, опечаток в названии нет, алгоритм исправный.
...
Рейтинг: 0 / 0
(php) oracle, pl/sql не биндятся переменные
    #38437818
ejnadall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nastie91,

это какая-то библиотека? ссылку дайте на описание, заодно посмотрите на совместимость именно этой версии к вашей php.
...
Рейтинг: 0 / 0
(php) oracle, pl/sql не биндятся переменные
    #38437835
Nastie91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ejnadall, этот класс бывший коллега сам описывал, а мне как наследие осталось. Проблема в том, что подобный код с классами работает с другими запросами (который как раз этот коллега и обрабатывал). А у меня вот нет. Есть подозрение, что проблема в криворукости, НО КАКАЯ???

Описание функций вот так (кусок не полностью)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public function parse($query){
		$stmt = oci_parse($this->connection, $query);
		return $stmt;
	}

	public function execute($stmt){
		oci_execute($stmt, OCI_DEFAULT);
	}


	public function fetch($stmt){
		return oci_fetch_array($stmt, OCI_ASSOC+OCI_RETURN_NULLS);
	}

	public function bind($stmt, $name, &$value, $maxsize = -1)
	{
		oci_bind_by_name($stmt, $name, $value, $maxsize) or $this->is_error();
		//errors_message_oracle(oci_error(),'');
	}
...
Рейтинг: 0 / 0
(php) oracle, pl/sql не биндятся переменные
    #38438395
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
	public function execute($stmt){
		oci_execute($stmt, OCI_DEFAULT);
	}



вот никогда так не пишите. смысла в этом ровно ноль.
...
Рейтинг: 0 / 0
(php) oracle, pl/sql не биндятся переменные
    #38438584
Nastie91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, а можете разъяснить почему? и как тогда писать?

Только вот проблема в том, что не выполняется public function bind
...
Рейтинг: 0 / 0
(php) oracle, pl/sql не биндятся переменные
    #38438629
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"не выполняется" в php имеет вполне конкретный смысл и результат.
результата мы так и не увидели.
...
Рейтинг: 0 / 0
(php) oracle, pl/sql не биндятся переменные
    #38438646
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор а можете разъяснить почему?
Код: php
1.
2.
3.
public function execute($stmt){
		oci_execute($stmt, OCI_DEFAULT);
	}


у вас класс обертка над функцией.

чисто технически в функцию снаружи передается и не проверяется что пришло в $stmt, а это должно быть приватным свойством класса. ну и так далее.

чисто архитектурно
обертка над oci_execute делающая ровно то же самое бесполезна, только место занимает.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php) oracle, pl/sql не биндятся переменные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]