Ребята, помогите решить эту проблемку. Вот скрипт: PHP: <?php $db ="(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.0.170)(PORT = 1521)) ) (CONNECT_DATA = (SID = srd) ) )"; $connect = OCIPLogon("user", "pas", $db) or die( "Could not connect to Oracle database!") or die (ocierror()); $query = "select a.result from sr$qq a"; echo $query; $statement = OCI_Parse ($connect, $query); echo $statement; $w = oci_execute ($statement); echo $w; while ($row = oci_fetch_array ($statement)) { echo $row[0]; } ?> Этот скрипт выдает вот такую ошибку: Warning: oci_execute() [function.oci-execute]: ORA-00942: table or view does not exist in C:\Program Files\Apache Group\Apache2\htdocs\Kusr2.php on line 15 Warning: oci_fetch_array() [function.oci-fetch-array]: ORA-24374: не сделаны определения перед извлечением или выполнением с извлечением in C:\Program Files\Apache Group\Apache2\htdocs\Kusr2.php on line 17 Этот же запрос из воркшита нормально выдает результат, никаких проблем, а вот пхп подводит. уже тредий день сижу, не могу никак найти где баг.
ssh2010, как таблица называется то? если sr$qq, то или экранируй знак доллара, или кавычки одинарные. В Оракле не понятия базы, как таковой, там только табличные пространства, доступ к которым рулится на уровне БД.
select a.result from sr_bk.sr$TA_AVR_COM_KURS a Вот настоящий запрос. В tnsnames.ora я изначально все прописывал. Это уже начал эксперементировать... select a.result from 'sr_bk.sr$TA_AVR_COM_KURS' a Заключил вот так в одинарные кавычки, теперь выдает ошибку Warning: oci_execute() [function.oci-execute]: ORA-00903: invalid table name in C:\Program Files\Apache Group\Apache2\htdocs\php\Kusr2.php on line 15 Warning: oci_fetch_array() [function.oci-fetch-array]: Л in C:\Program Files\Apache Group\Apache2\htdocs\php\Kusr2.php on line 17
select a.result from sr_bk.sr$TA_AVR_COM_KURS a; Ребята, вот мне админ оракла дал такой запрос, чтоб я вытягивал нужную мне ячейку. Чесно говоря, я в сиквеле не очень силен. Были бы к админу вопросы, если бы результат из воркшита не выдавался, а так не знаю даже... может сам пхп определяет часть имени таблици "$TA_AVR_COM_KURS" как переменную?
Если кавычки двойные. Потестить не могу сейчас насчет спецсимволов в именах таблиц, попробуйте экранировать знак доллара. Если терпит, завтра на работе потестирую.
Йопт, заработало!! Сколько то я парился, а ошибка то совсем явная была!! Спасибо все огромнейшее за помощь и советы!!
ребята, еще такой вопрос. есть запрос к ораклу вида: хххххххххххххххххххххх and a.code = 'KRD000000B' Воркшит нормально выдает ответ. а пхп, как я понял не нравятся одинарные кавычки. Пробовал я их заменить на двойные или вооще убрать, ругается... может как по другому их можно заменить?
если хотите писать на пхп, то вам придётся понять разницу между одинарными и двойными кавычками, а также другими способами записи строк в пхп: http://www.php.net/manual/ru/language.types.string.php в вашем случае: $sql = 'select ... from tbl$blablabla where ... and a.code = \'KRD000000B\'' или $sql = "select ... from tbl\$blablabla where ... and a.code = 'KRD000000B'"