无法从PHP连接到SQL Server 2008

时间:2014-01-14 15:13:57

标签: php sqlsrv

我有使用mysql数据库的经验,并已通过几十个项目成功连接到它们。

现在,我无法连接到SQL Server 2008.这有效:<?php phpinfo(); ?>和sqlsrv和pdo_sqlsrv部分显示在此页面上。这是我用来连接的代码:

<?php
$serverName = "serverName\sqlexpress"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

此代码直接来自php.net:http://www.php.net/manual/en/function.sqlsrv-connect.php。我做的唯一更改是用##替换serverName \ sqlexpress。#。#。##。并更改:dbName,用户名,密码。

以下是运行上述连接代码时的结果:

  

解析错误:第23行的C:\ inetpub \ quote.myWebsite.com \ index.php中的语法错误,意外的'$ serverName'(T_VARIABLE)

即使我运行这样简单的东西:

<?php $myVariable = "someString"; ?>

我得到了相同类型的解析错误:

  

解析错误:第23行的C:\ inetpub \ quote.myWebsite.com \ index.php中的语法错误,意外的'$ myVariable'(T_VARIABLE)

为什么我在PHP代码中收到错误?

1 个答案:

答案 0 :(得分:1)

您有一个字符串转义错误。打开此link并搜索字符串“Escaped characters”(不带引号)。然而,逃避序列 \ s 不存在。

将此行从$serverName = "serverName\sqlexpress";更改为:$serverName = "serverName\\sqlexpress";。仔细观察我只是加倍反斜杠( \\ )。