一年多以前,我创建了自己的数据库类,使用PDO,并处理所有准备,执行和关闭连接。到目前为止,这些课程一直很好。
我从中获取了两种不同的数据库服务器,MySQL和MS SQL Express。我正在从MySQL服务器检索员工ID并使用它从MS SQL服务器获取该员工信息。有大约11k的记录来自MySQL服务器,而我的程序只能通过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次并且没有问题。此外,我已经彻底检查了查询中的所有数据,看起来一切都很好。
我认为问题可能是创建了许多连接,但我试图在许多不同的地方关闭所有连接,似乎没有什么能解决这个问题。任何调试帮助或建议将不胜感激!
Craig Metrolis
已更新
好的,我发现了问题,我在准备查询之后和执行之前使用了closeCursor。我拿出了closeCursor,它似乎解决了这个问题....但是为什么?这对我没有任何意义.....
答案 0 :(得分:0)
PDOStatement :: closeCursor()释放 与服务器的连接,以便 可能会发布其他SQL语句, 但声明留在一个州 这使它能够再次执行。
换句话说,它正在关闭你的连接。
但仍然没有解释为什么在问题发生之前它已经通过了1200条记录。