我有 PHP 示例代码,它将通过 Linux(CentOS)机器上的 ODBC 驱动程序从 MYSQL 数据库获取数据。
我已经创建了 DSN 并且同样能够通过以下命令进行连接 isql-v 但是,当我尝试通过 PHP 代码使用相同的 DSN 时,我收到“此结果索引处没有可用的元组”,因为无法通过 PHP APACHE 配置从数据库读取数据。
如果有人提供解决方案,对我进一步进行更有帮助。
以下是我的示例代码和其他详细信息,如果以下配置详细信息有任何错误,请纠正-
下面是示例 PHP 代码:
<?php
$conn = odbc_connect("DSN", "username", "password");
$sql = 'select * from tablename';
$rs = odbc_exec($conn,$sql);
echo "<table><tr>";
echo "<th>User Name</th></tr>";
while(odbc_fetch_row($rs)) {
$user = odbc_result($rs,"fieldname");
echo "<tr><td>$user</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>
下面是 odbc.ini 文件:
[DSN]
Description = MySQL ODBC Database
DRIVER = MySQL
TraceFile = /tmp/odbcerr.log
SERVER = 127.0.0.1
PORT = 3306
USER = username
PASSWORD = password
DATABASE = database
OPTION = 3
SOCKET = /var/lib/mysql/mysql.sock
下面是 odbcinst.ini 文件:
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
FileUsage = 1
UsageCount = 3
<小时/>
最佳答案
The comments in the documentation for odbc_connect
表明这可能是由于使用不正确的游标类型引起的。尝试将三个可能值中的每一个作为第四个参数:SQL_CUR_USE_IF_NEEDED
、SQL_CUR_USE_ODBC
或 SQL_CUR_USE_DRIVER
。
我很好奇为什么使用 ODBC 来连接 MySQL。 PHP 有许多更好的方法从 MySQL 读取数据,包括 the excellent PDO class (如果需要的话,它本身can connect via ODBC)。
关于php - 警告/错误 :- No tuples available at this result index PHP-APACHE-ODBC-MYSQL-CENTOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281835/