我收到错误
致命错误:未捕获错误:调用未定义的函数 odbc_connect()
Ive added the extension in php.ini and phpinfo() is confirming that the odbc driver exists (see screenshot)
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 驱动程序。然而,该司机是not提供的那个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 不是一种一致的语言,但这是可能做到的)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)