使用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
相关产品推荐
相关产品推荐

