Более года назад я создал свои собственные классы базы данных, которые используют PDO и обрабатывают все подготовительные, выполняемые и закрывающие соединения. Эти классы прекрасно работали до сих пор.
Есть два разных сервера баз данных, с которых я берусь: MySQL и MS SQL Express. Я получаю идентификатор сотрудника с сервера MySQL и использую его для получения информации о сотрудниках с сервера MS SQL. С сервера MySQL поступает около 11 тыс. Записей, и моя программа пробивает только 1200, а затем вылетает с ошибкой, подобной следующей.
Connection failed (odbc:Driver=FreeTDS;Servername=MSSQLExpress;Database=SMDINC) Class (PDOException)
SQLSTATE[08001] SQLDriverConnect: 0 [unixODBC][FreeTDS][SQL Server]Unable to connect to data source
Кажется, что программа не может подключиться к источнику данных, но она выполняет тот же самый запрос примерно 30 раз до этого и не имеет проблем. Кроме того, я тщательно проверил все данные, поступающие в запрос, и все выглядит нормально.
Я полагаю, что проблема может заключаться в том, что создается много соединений, но я пытался закрыть все соединения во многих разных местах, и кажется, что ничего не решает проблему. Любая помощь отладки, или предложения будут оценены!
Крейг Метролис
ОБНОВЛЕНО
Хорошо, я нашел проблему, я использовал closeCursor после подготовки запроса и перед выполнением. Я вынул closeCursor и, похоже, исправил эту проблему .... НО ПОЧЕМУ? Это не имеет никакого смысла для меня .....