У меня есть более старый сайт, который использует соединение odbc. По какой-то причине запрос теперь терпит неудачу.
Я создал тестовую страницу, которая вызывает тот же скрипт подключения к базе данных, который я использовал:
<?php
$db_host = "MAINHOST";
$db_user = "MAINUSER";
$db_pass = "MAINPASS";
$db_odbc = "MAINDB";
$connect = odbc_connect($db_odbc, $db_user, $db_pass) or die ("Could not connect to Oracle");
?>
Я могу проверить эту страницу и проверить, действительно ли есть хорошая связь.
Вот пример запроса:
<?php
include("include/database.php");
if($connect) // just added this. figured I'd make sure the connection is good before proceeding
{
$queryMain = "SELECT a_bunch_of_records FROM a_table WHERE a_bunch_of_where_clauses";
$resultMain = odbc_exec($connect, $queryMain);
if($resultMain)
{
echo "query successful";
}
else
{
echo "query failed " . odbc_error();
}
}
else
{
echo "no connection";
}
?>
Первоначально я получал ошибку 500 в консоли Chrome, прежде чем перевести ее на тестовую страницу. Теперь я получаю ошибку «эта страница не работает». Это не выплевывает odbc_error.
Я могу повторить запрос и запустить его в окне PL / SQL, и он успешно возвращает данные.
Может ли кто-нибудь увидеть проблему? Я не уверен, есть ли проблема с самим сервером. Я недоумеваю.
* ОБНОВИТЬ *
Я замечаю, что иногда запрос выполняется, иногда это не так. Возможно, подключение к серверу нестабильно. Неуверенный.
Всего 1 ответ
Поскольку в файле журнала указано превышение максимального времени, рассмотрите несколько вариантов:
Оптимизируйте запрос Oracle SQL для работы быстрее, чем значение по умолчанию 30 секунд, которое может включать:
EXPLAIN PLAN FOR SELECT ...
WHERE
Временно расширьте настройки PHP по умолчанию во время выполнения кода с помощью:
ini_set('max_execution_time', <SOME NUMBER>);
Постоянно расширяйте глобальный параметр PHP в файле php.ini (затем перезапустите его для распространения изменений):
max_execution_time = <SOME NUMBER>