как сделать SQL_CUR_USE_ODBC в pdo

Надеюсь, это действительно легко — но потратил немало времени на это.

По сути, я иду по маршруту 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.

1

Решение

Мне удалось это исправить с помощью следующих параметров объекта PDO

$pdo = new PDO("DRIVER={InterSystems ODBC};SERVER=xxxxxxx;DATABASE=development;
UID=xxxxxx;PWD=xxxxxxxx;", 'user', 'pass', array(SQL_CUR_USE_ODBC));

И это работает!
Также теперь имя пользователя и все в коде, поэтому, если вы перенесете его на другую машину, вам не придется думать о новом соединении odbc в Windows или где-либо еще.

1

Другие решения

Других решений пока нет …