代码之家  ›  专栏  ›  技术社区  ›  Metropolis

PDO数据库连接问题

  •  0
  • Metropolis  · 技术社区  · 14 年前

    一年多以前,我创建了自己的数据库类,这些类使用PDO,并处理所有准备、执行和关闭连接。到目前为止,这些课程一直都很不错。

    我从中获取的数据库服务器有两种,MySQL和MS SQL Express。我正在从MySQL服务器检索员工ID,并使用它从MS SQL Server获取员工信息。大约有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次完全相同的查询,而且没有问题。另外,我已经彻底检查了进入查询的所有数据,这些数据看起来都很好。

    我相信问题可能是有很多连接被创建,但我已经尝试关闭许多不同地方的所有连接,似乎没有任何东西可以解决这个问题。任何调试帮助或建议将不胜感激!

    克雷格梅洛

    更新的

    好的,我发现了问题,我在准备查询之后和执行之前使用了closecursor。我拿出了closecursor,它似乎解决了这个问题……但是为什么呢?对我来说没有任何意义…

    1 回复  |  直到 14 年前
        1
  •  0
  •   Powerlord    14 年前

    pPostStatement::CloseCursor()释放 与服务器的连接,以便 可能会发出其他SQL语句, 但是让声明处于一种状态 这使得它可以再次执行。

    换言之,它正在关闭你与你的联系。

    不过,这仍然不能解释为什么在问题发生之前,它已经突破了1200条记录。