Я пытаюсь заставить кэширование ADODB работать. У меня есть php-скрипт, в котором я определяю соединение с БД.
global $conn;
$conn = new COM ("ADODB.Connection");
$connStr = "PROVIDER-SQLOLEDB;SERVER=;UID=;PWD=;DATABASE=);
$conn->open($connStr);
Я убрал ненужные детали из картины.
Затем в каком-то другом скрипте я импортирую connection.php, а затем пытаюсь сделать обычный запрос.
$query = "SELECT * from table where some_id = 21540 and other_id = BOGUS_INFO"
$rs = $GLOBALS['conn']->CacheExecute(60,$query);
Это возвращает неперехваченное исключение 'com_exception'. Аргументы ADODB.Connection имеют неправильный тип, выходят за пределы допустимого диапазона или конфликтуют с другим.
Я сбит с толку, потому что следующая строка кода работает безупречно.
$rs = $GLOBALS['conn']->execute($query); //OK!
Любые идеи? Я также пробовал CacheGetOne, но получаю ту же ошибку. Может ли это быть из-за того, как я определил эту вещь ниже? (это буквально так в моем коде)
$GLOBALS['ADODB_CACHE_DIR']=$_SERVER['DOCUMENT_ROOT'].'/../cache/adodb';