我正在尝试为我的服务器创建一个登录系统。我使用 xampp 在我的本地网站上使用了类似的代码,但现在我正在尝试使用外部服务器。我得到的错误是这个。
Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code] => 102 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near '
'. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near '
'. ) )
我的代码如下:
<?php
session_start();
$inputuser = $_REQUEST['Username'];
$inputpass = $_REQUEST['Password'];
$Server = "MyServer";
$user = "user";
$password = "pass";
$database = "mydb";
$table = "users";
$connectionInfo = array( "Database"=>$database,"UID"=>$user, "PWD"=>$password);
$link = sqlsrv_connect($Server, $connectionInfo);
if ($link === false) {
echo "Connection failed. \n";
die(print_r(sqlsrv_errors(), true));
}
$query = "SELECT `Username` FROM `onlinereporting` . `users` WHERE `Username` = '$inputuser'";
$querypass = "SELECT `Password` FROM `onlinereporting` . `users` WHERE `Password` ='$inputpass'";
$result = sqlsrv_query($link,$query);
$resultpass = sqlsrv_query($link,$querypass);
if ($result === false) {
die(print_r(sqlsrv_errors(), true));
}
$row = sqlsrv_fetch_array($result);
$rowpass = sqlsrv_fetch_array($resultpass);
$serveruser = $row["Username"];
$serverpass = $rowpass["Password"];
if ($serveruser And $serverpass) {
header('Location: index.html');
}
else {
header('Location: FailedPage.html');
}
?>
连接工作正常,唯一的问题出现在我尝试检查结果是否为假时。
当我不尝试检查 $result 时,我插入的所有内容都被视为错误的用户名和密码。
欢迎任何帮助或建议。
最佳答案
我相信原因是您使用反引号来引用表名和列名,而在 SQL 服务器中名称是使用 "
引用的。尝试将反引号更改为双引号,即:
$query = "SELECT \"Username\" FROM \"onlinereporting\" . \"users\" WHERE \"Username\" = '$inputuser'";
关于php - 登录系统sqlserver连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37854625/