我收到错误
致命错误:未捕获错误:调用未定义的函数 odbc_connect()
我在 php.ini 中添加了扩展名,phpinfo() 正在确认 odbc 驱动程序存在(见截图)
php 脚本只是一个简单的查询
<?php
$num_minutes = 10;
ini_set('max_execution_time', (60*$num_minutes));
$conn = odbc_connect("CData Sage50UK Source","manager","password");
$query = odbc_exec($conn, "SELECT * FROM SalesOrders LIMIT 1");
while($row = odbc_fetch_array($query)){
$json1[] = array_map('utf8_encode', $row);
}
echo json_encode($json1);
?>
您提供的屏幕截图确实显示安装了 ODBC 驱动程序。但是,有问题的驱动程序不是提供这些odbc_xxx()
功能的驱动程序。相反,它是通过 PDO 库提供对 ODBC 的访问。
您有两个选择:
安装您需要的用于 PHP 的 ODBC 驱动程序扩展,以便访问这些odbc_xxx()
函数。执行此操作的确切方法将根据您的平台而有所不同,因此我无法给出确切的说明,但您需要管理员访问服务器,因此它可能是也可能不是您的可行解决方案。
更改您的代码以使用 PDO 库而不是odbc_xxx()
函数。您将需要使用如下一行代码连接到数据库:
$db = new PDO('odbc:Server=dbIpAddr,portNumber;Database=databaseName', 'username', 'password');
...然后在整个代码中使用 PDO 方法调用来访问数据库。根据你的例子,它会是这样的:
$stmt = $db->query("SELECT * FROM SalesOrders LIMIT 1");
while ($row = $stmt->fetch())
{
$json1[] = array_map('utf8_encode', $row);
}
如果您已经编写了所有代码,这可能会很痛苦。另一方面,这样做的好处是,如果您希望这样做,您的代码将在数据库引擎之间更具可移植性。(这样做仍然需要做一些工作,因为 SQL 不是一种一致的语言,但可以这样做)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句