ODBC_CONNECT连接SQLSERVER2000查询不出结果集怎么办?ODBC_CONNECT是一个非常方便的php数据库连接函数,但这个函数用起来, 经常会出现微软系统常见的莫名其妙的错误 让你无从查找。现在就给大家分析如果使用ODBC_CONNECT函数连接SQLSERVER2000查询不出结果集的解决方法。
odbc_connect ( string $dsn
, string $user
, string $password
[, int $cursor_type
] ) : resource
其他ODBC函数需要此函数返回的连接id。只要使用不同的数据库或不同的凭据,就可以同时打开多个连接。
对于某些ODBC驱动程序,执行复杂的存储过程可能会失败,错误类似于:“无法打开存储过程上的游标,该存储过程中除了一个select语句外,还有其他任何内容。”。使用SQL_CUR_USE_ODBC 这个常量可以避免这个错误。另外,有些驱动程序不支持odbc_fetch_row()中的可选row_number参数。在这种情况下,常量SQL_CUR_USE_ODBC 可能也有帮助。
参数
dsn
连接的数据库源名称。或者,可以使用无DSN的连接字符串。
user
数据库用户名
password
数据库密码
cursor_type
这将设置用于此连接的游标类型。此参数通常不需要,但对于解决某些ODBC驱动程序的问题非常有用。为cursortype定义了以下常量:
- SQL_CUR_USE_IF_NEEDED
- SQL_CUR_USE_ODBC
- SQL_CUR_USE_DRIVER
在万维景盛为客户处理的一个案例中 程序就是因为使用了SQL_CUR_USE_ODBC参数结果导致无法读取结果集 但windows系统没有任何报错和提示 无奈之下 只好将此参数换成SQL_CUR_USE_DRIVER或者SQL_CUR_USE_IF_NEEDED或者干脆去掉 问题即可解决。估计这是因为ODBC组件无法对数据库进行游标操作 而将游标操作交给SQL SERVER驱动器即可完成这个任务。
如果您有SQL2000或者php+sql server的奇葩项目需要维护 欢迎联系万维景盛客服 我们将为您提供维护+故障解决+升级到新兼容系统的完整解决方案。