Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php) oracle, pl/sql не биндятся переменные / 7 сообщений из 7, страница 1 из 1
22.10.2013, 21:33
    #38437618
Nastie91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) oracle, pl/sql не биндятся переменные
Доброго времени суток. Вот такая проблема возникла:
Есть запрос к Ораклу, в котором указывается входное значение параметра (типа :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
23.10.2013, 07:52
    #38437818
ejnadall
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) oracle, pl/sql не биндятся переменные
Nastie91,

это какая-то библиотека? ссылку дайте на описание, заодно посмотрите на совместимость именно этой версии к вашей php.
...
Рейтинг: 0 / 0
23.10.2013, 08:55
    #38437835
Nastie91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) oracle, pl/sql не биндятся переменные
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
23.10.2013, 14:46
    #38438395
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) oracle, pl/sql не биндятся переменные
Код: php
1.
2.
3.
	public function execute($stmt){
		oci_execute($stmt, OCI_DEFAULT);
	}



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

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


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

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

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


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