未找到ISAM表,SQLExecDirect中的SQL状态为S0000 PHP版本:7.0.14 在Windows Server 2012上工作 数据库文件位于D:驱动器中 网站/应用程序已正确分配到应用程序池 分配的应用程序池具有D:驱动器的权限
正在尝试连接并从ToppSpeed数据库获取信息 使用Topspeed ODBC驱动程序正确创建DSN 我创建了一个示例脚本来验证它是否正常工作 odbctest.php未找到ISAM表,SQLExecDirect中的SQL状态为S0000 PHP版本:7.0.14 在Windows Server 2012上工作 数据库文件位于D:驱动器中 网站/应用程序已正确分配到应用程序池 分配的应用程序池具有D:驱动器的权限,php,iis,permissions,odbc,windows-server-2012,Php,Iis,Permissions,Odbc,Windows Server 2012,正在尝试连接并从ToppSpeed数据库获取信息 使用Topspeed ODBC驱动程序正确创建DSN 我创建了一个示例脚本来验证它是否正常工作 odbctest.php $conn=odbc_connect(“DSN_名称,”)//连接到DSN 如果(!$conn){ 退出(“连接失败:.$conn”); } $sql=“从ExampleTableName中选择*”//查询字符串 $rs=odbc_exec($conn,$sql)//执行查询php-S localhost:8002 并在htt
$conn=odbc_connect(“DSN_名称,”)//连接到DSN
如果(!$conn){
退出(“连接失败:.$conn”);
}
$sql=“从ExampleTableName中选择*”//查询字符串
$rs=odbc_exec($conn,$sql)//执行查询php-S localhost:8002
并在http://localhost:8002/odbctest.php
一切正常
>php odbctest.php
工作正常,我从表中获取了数据C:\inetpub\wwwroot\projectFolder
)与本地IP绑定当我在带有本地IP的浏览器中打开
odbctest.php
时,我发现表未找到错误。
- 在PHP内置服务器上工作:在PHP信息中服务器API是:内置HTTP服务器
- 无法在IIS服务器上工作:在PHP信息中,服务器API为:CGI/FastCGI
有什么建议或想法吗?请告知。提前感谢。数据库SQL错误没有说明任何有关权限的内容, 所以我创建了一个简单的PHP脚本,将数据附加到文本文件中。 我在IIS服务器上运行了带有两个测试用例的PHP脚本
- 测试用例1:写入项目目录中的文本文件(同一服务器) PHP脚本正确执行并将数据写入文本文件
- 测试用例2:我用文件
(位于D驱动器上)更改文本文件路径 当我再次运行脚本时,我得到以下错误:D:\some\u directory\logfile.txt
D:Driver.
的权限,因此这不是问题所在。
在更多的研究中,我发现
我们需要首先确定需要提供权限的用户,并且该用户是“匿名用户标识”的值
我看到,匿名用户身份的值不是应用程序池
我将其更改为应用程序池标识。
因此,现在网站/应用程序的匿名用户身份成为应用程序池,并且具有正确的权限
在这些更改之后,由于没有权限问题,所以一切都非常正常 数据库SQL错误没有说明任何有关权限的内容, 所以我创建了一个简单的PHP脚本,将数据附加到文本文件中。 我在IIS服务器上运行了带有两个测试用例的PHP脚本
- 测试用例1:写入项目目录中的文本文件(同一服务器) PHP脚本正确执行并将数据写入文本文件
- 测试用例2:我用文件
(位于D驱动器上)更改文本文件路径 当我再次运行脚本时,我得到以下错误:D:\some\u directory\logfile.txt
D:Driver.
的权限,因此这不是问题所在。
在更多的研究中,我发现
我们需要首先确定需要提供权限的用户,并且该用户是“匿名用户标识”的值
我看到,匿名用户身份的值不是应用程序池
我将其更改为应用程序池标识。
因此,现在网站/应用程序的匿名用户身份成为应用程序池,并且具有正确的权限
在这些更改之后,由于没有权限问题,所以一切都非常正常
$conn=odbc_connect("DSN_NAME",'',''); //Make a coonection to DSN
if (!$conn){
exit("Connection Failed: " . $conn);
}
$sql="SELECT * FROM ExampleTableName"; // Query String
$rs=odbc_exec($conn,$sql); //Execute Query <--- Error Line
if (!$rs) {
exit("Error in SQL");
}
while (odbc_fetch_row($rs)){
var_dump(odbc_result($rs,1));
}
odbc_close($conn);