gpt4 book ai didi

php - IIS PHP 使用来自 web.config 的连接字符串

转载 作者:行者123 更新时间:2023-12-04 05:27:04 26 4
gpt4 key购买 nike

我们使用在connect.php 中定义的字符串,但现在我们有一些启用silverilght 的服务,它们使用IIS 中的web.config 作为其连接字符串。

因此,我可以从 PHP 访问 web.config 中的一个,而不是将连接字符串放在两个地方吗?这也将使最终用户更容易进行更改。

最佳答案

我知道这是一个非常古老的线程,但最近我遇到了类似的问题。我只是将我的解决方案分享给需要它的人。它 100% 达到了我的目的,希望它也能帮助你。

在我的 web.config 连接字符串节点看起来像:

<connectionStrings>
<add name="sqlDB" connectionString="Server=xxx.xxx.xxx.xxx; Database=db_name; User Id=sqlserver_user_name; password=sqlserver_password;Max Pool Size=2000;" providerName="System.Data.SqlClient" />
</connectionStrings>

我编写了以下 PHP 代码来检索 sql server 连接信息以在 PHP 中使用它
<?php
// start get connection string from web.config
$xml = simplexml_load_file("../Web.config") or die("Error: Cannot create object");
//in my case web.config is in previous directory
$array = json_decode(json_encode((array) $xml), 1);

$server = "";
$database = "";
$user = "";
$password = "";

$fullString = ($xml->connectionStrings->add[0]["connectionString"]);

$strArr = explode(";", $fullString);

$arrCount = count($strArr);
$connArr[]="";
for($x=0;$x<$arrCount-1;$x++){
$aS = explode("=",$strArr[$x]);
$connArr+=array(strtolower(trim($aS[0])) => trim($aS[1]));
}
$server = $connArr["server"];
$database = $connArr["database"];
$user = $connArr["user id"];
$password = $connArr["password"];
// end get connection string from web.config

$connectionInfo = array( "UID"=>$user,
"PWD"=>$password,
"Database"=>$database,
"CharacterSet" => "UTF-8");

/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $server, $connectionInfo);
?>

仅供引用:在我的情况下,web.config 和 php 文件在同一个域中并在同一个根目录下。如果您在跨域环境中工作,您应该首先考虑从远程位置读取 web.config,但出于安全原因,这不是一个明智的决定。

谢谢

关于php - IIS PHP 使用来自 web.config 的连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13083206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com