PHP 7.2中未定义的函数odbc_connect()
我发现了错误 致命错误:未捕获错误:调用未定义的函数odbc_connect() 我在php.ini中添加了扩展,phpinfo()正在确认odbc驱动程序存在(请参见屏幕截图) php脚本只是一个简单的查询PHP 7.2中未定义的函数odbc_connect(),php,Php,我发现了错误 致命错误:未捕获错误:调用未定义的函数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"
<?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\u xxx()
函数的驱动程序。相反,它通过PDO库提供对ODBC的访问
您有两个选择:
ODBC\u xxx()
函数。具体的操作方法会因您的平台而异,因此我无法给出确切的说明,但您需要管理员访问服务器,因此它可能是您的可行解决方案,也可能不是odbc\u xxx()
函数。您需要使用以下代码行连接到数据库:
$db = new PDO('odbc:Server=dbIpAddr,portNumber;Database=databaseName', 'username', 'password');
$stmt = $db->query("SELECT * FROM SalesOrders LIMIT 1");
while ($row = $stmt->fetch())
{
$json1[] = array_map('utf8_encode', $row);
}
。。。然后在整个代码中使用PDO方法调用来访问数据库。根据您的示例,它将是这样的:
$db = new PDO('odbc:Server=dbIpAddr,portNumber;Database=databaseName', 'username', 'password');
$stmt = $db->query("SELECT * FROM SalesOrders LIMIT 1");
while ($row = $stmt->fetch())
{
$json1[] = array_map('utf8_encode', $row);
}
如果您已经编写了所有代码,那么这可能是一个难题。另一方面,这样做的好处是,如果您希望这样做,您的代码将在数据库引擎之间更易于移植。(由于SQL不是一种一致的语言,因此这样做仍然需要做一些工作,但这是可能的)这行吗?PDO与odbc_connect不同。尝试改用PDO。谢谢您的详细回答。我使用我购买的数据源连接到Sage50,所以我认为odbc是我必须坚持的。目前我正在将Xampp与mysql+phpmyadmin一起使用,在哪里可以添加ODBC驱动程序扩展?我实际上只需要将extension=php_ODBC.dll添加到php.ini中