-2

私は 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));
}
?>

このコードは、 http ://www.php.net/manual/en/function.sqlsrv-connect.php の php.net から直接引用したものです。私が行った唯一の変更は、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 コードでエラーが表示されるのはなぜですか?

4

1 に答える 1

1

文字列エスケープ エラーがあります。このリンクを開き、文字列「Escaped characters」(引用符なし) を検索します。ただし、エスケープ シーケンス\sは存在しません。

この行を this: から this: に変更し$serverName = "serverName\sqlexpress";ます$serverName = "serverName\\sqlexpress";よく見ると、バックスラッシュ ( \\ )を 2 倍にしただけです。

于 2014-01-14T15:28:45.790 に答える