You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用XAMPP中PHP连接Sybase Central 16时sasql_connect函数未定义报错求助

解决PHP 5.6调用sasql_connect()出现未定义函数的问题

你遇到的这个Fatal error: Call to undefined function sasql_connect()错误,核心原因确实大概率是SQL Anywhere的PHP扩展版本和你的PHP 5.6不匹配,或者扩展没有正确加载。下面一步步帮你排查和解决:

1. 确保扩展文件版本完全匹配你的环境

因为你用的是32位的PHP 5.6,所以必须从SQL Anywhere 16的安装包中提取对应版本的扩展:

  • 找到SQL Anywhere 16安装目录下的PHP\PHP-5.6\Win32路径(默认一般是C:\Program Files (x86)\SQL Anywhere 16\PHP\PHP-5.6\Win32)
  • 这里面有两个关键文件:
    • php_sqlanywhere.dll:把这个文件复制到你的xampp/php/ext目录下(注意文件名不是你现在用的php-5.6.0_sqlanywhere.dll,要和这个标准命名一致)
    • dbodbc16.dll:这个是依赖库,需要复制到XAMPP的Apachebin目录(比如xampp\apache\bin),或者直接放到系统的System32目录

2. 修正php.ini的扩展配置

  • 打开xampp/php/php.ini,把你之前加的extension=php-5.6.0_sqlanywhere.dll改成extension=php_sqlanywhere.dll,确保和你复制到ext目录的文件名完全一致
  • 另外检查extension_dir配置,确保指向正确的扩展目录,比如:
    extension_dir = "C:\xampp\php\ext"
    

3. 配置系统环境变量

  • 把SQL Anywhere 16的32位bin目录添加到系统PATH环境变量中,路径一般是C:\Program Files (x86)\SQL Anywhere 16\Bin32
  • 环境变量修改后一定要重启电脑,否则新的PATH不会生效

4. 验证扩展是否成功加载

  • 新建一个phpinfo.php文件,内容如下:
    <?php phpinfo(); ?>
    
  • 用浏览器访问这个文件,搜索sqlanywhere关键词,如果能看到对应的扩展信息,说明加载成功;如果找不到,就得回头检查文件名、路径或者环境变量有没有配置错

5. 重新测试连接代码

确认扩展加载成功后,再用你的测试代码验证,还可以加上错误信息打印方便排查:

<?php 
$conn = sasql_connect( "UID=dba;PWD=sql" ); 
if( $conn ) { 
    echo "Connected successfully<br>"; 
    sasql_disconnect( $conn ); 
} else { 
    echo "Connection failed<br>"; 
    // 打印错误信息辅助排查
    if(function_exists('sasql_error')){
        echo "Error details: " . sasql_error();
    }
} 
?>

内容的提问来源于stack exchange,提问作者Francisco Nunes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:37:06