php - 如何在 PHP Apache 中通过 DSN 连接 SQL Server?(当 Apache 服务开启时它不工作)
问题描述
实际上,我尝试使用 sqlsrv_connect 并使用没有 Apache 服务的 DSN(数据源名称)来连接 SQL 服务器,那么两者都可以正常工作。
问题是当我打开 apache 服务时,php 无法使用 odbc DSN(使用 sqlsrcv_connect)连接到 sql 服务器。
条件是我需要使用使用 DSN 的 sql server 运行的应用程序打开 apache。我使用水晶报告,这就是为什么真的需要这种方法。我尝试使用系统 DSN 而不是用户 dsn,它也无法正常工作。
!
我在下面写了代码来测试我的场景
// Connect to the data source
$conn=odbc_connect('DSNNAME','DBUSER','DBPASS');
if ($conn){
echo "Connection established DSN";
}
else {
echo "Connection using DSN Failed:" . odbc_errormsg();
}
// Connect through server name
$serverName = "WEBSERVER\SQLEXPRESS"; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"DBNAME", "UID"=>"DBUSER", "PWD"=>"DBPASS");
$conn2 = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn2 ) {
echo "Connection established using server name";
}else{
echo "Connection could not be established by using server name";
die( print_r( sqlsrv_errors(), true));
}
Apache 服务开启时的结果。
解决方案
确保 ODBC DSN 在 32 位或 64 位方面与 Crystal 运行时相匹配。
推荐阅读
- pandas - 2个时间序列数据帧之间的相关性
- react-native - 无法读取未定义 [React Native] 的属性“getUserMedia”
- angular - 如何将 Firestore 数据映射到 Ionic / Angular 应用程序中的打字稿界面?
- prismjs - 如何正确地将 PrismJS 集成到 Eleventy 项目中?
- python - Tkinter Bugs wrt 向菜单栏添加多个按钮
- sql - 光标:最大整数值保留在行中,其他值在前几行中变为零
- r - 置信区间 - 不同方法的结果不一致
- python - 如何使用 httplib2 上传图像,但不将其保存到我的计算机?
- python - 如何使用 concurrent.futures.ProcessPoolExecutor 在进程之间传递消息/信息
- d3.js - 图表未显示