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

PHP连接MSSQL数据库因密码含$特殊字符失败如何不修改密码解决

问题根因

你代码里密码字符串用了双引号包裹,PHP的双引号字符串规则会自动解析$开头的内容为变量,你定义的$pwd = "1234$67890"实际运行时会把$6识别为未定义的变量,最终$pwd的实际值和你预期的原始密码不一致,导致连接校验失败。

解决方案

有两种不需要修改原始密码的处理方式:

  • 方案1:改用单引号包裹密码字符串
    PHP单引号字符串不会解析变量和特殊转义字符,直接替换密码行即可:
    $pwd = '1234$67890';
  • 方案2:保留双引号的话,给$加转义符
    用反斜杠转义$,让PHP将其识别为普通字符:
    $pwd = "1234\$67890";

修正后的完整代码

<?php    
$servername = "MYSERVER";   
$uid = "xxxxxx"; 
// 这里用单引号包裹密码,避免$被解析为变量
$pwd = '1234$67890';
$databasename = "MSCorpInventory"; 
$connectionInfo = array ( "Database"=> $databasename, "UID"=> $uid, "PWD"=> $pwd );   
/* Connect using SQL Server Authentication. */    
$con = sqlsrv_connect ( $servername, $connectionInfo );  
if( $con ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>

验证方法

修改代码后可以先输出$pwd确认值是否正确:echo $pwd;,如果输出为1234$67890即为配置正确,再执行数据库连接逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:18:04