Надеюсь, это действительно легко — но потратил немало времени на это.
По сути, я иду по маршруту PDO, как мы все должны сделать сейчас.
На моем сервере разработчика я использовал PDO и соединение OBDC с моей базой данных кеша. Это работало нормально, никаких проблем с переездом жить, и это было довольно медленно. Я думаю, что отчасти это связано с архитектурой 32-битных / 64-битных систем.
В любом случае, поиграв с драйверами и сдавшись, я вернулся к сценарию PHP и выбрал DSN, который подключается. На локальных опять молнии — на живых очень медленно.
Я добавил SQL_CUR_USE_ODBC
о которых я слышал хорошие вещи, и оба, кажется, теперь в порядке.
Мой вопрос, как мне сделать это с помощью объекта pdo?
Я думаю, что это под setCursor
но не знаю, что передать или что-нибудь.
моя текущая строка подключения
$conn = odbc_connect ( "DRIVER={InterSystems ODBC};SERVER=xxxxxxx;DATABASE=development;
UID=xxxxxx;PWD=xxxxxxxx;" , "" ,SQL_CUR_USE_ODBC);
pdo один
$pdo = new PDO("odbc:pmi");
Со всей информацией о сервере и пароле внутри.
Так как мне использовать SQL_CUR_USE_ODBC
в пдо.
Просто чтобы прояснить: IIS7, PHP 5.4, 64-битный сервер Windows 2008 R2.
Мой dev такой же, но 32-битная Windows 7.
Мне удалось это исправить с помощью следующих параметров объекта PDO
$pdo = new PDO("DRIVER={InterSystems ODBC};SERVER=xxxxxxx;DATABASE=development;
UID=xxxxxx;PWD=xxxxxxxx;", 'user', 'pass', array(SQL_CUR_USE_ODBC));
И это работает!
Также теперь имя пользователя и все в коде, поэтому, если вы перенесете его на другую машину, вам не придется думать о новом соединении odbc в Windows или где-либо еще.
Других решений пока нет …