我在使用PHP运行SQL查询时遇到问题。这是我的代码
$username = $_POST['username'];
$SQLString = "SELECT COUNT(*) FROM dbo.Users WHERE Username = '$username'";
$result = sqlsrv_query($conn, $SQLString) or die (print_r(sqlsrv_errors(), true));
$userExists = sqlsrv_fetch_object( $result );
echo("test");
echo($userExists);
echo("test2");
返回testtest2
,$ userExists没有。这似乎在昨晚工作,除了打印出sqlsrv错误之外我没有改变任何东西,但那些不会返回任何内容。
$result
返回Resource id #3
,我可以稍后在代码中运行插入。
任何人都可以看到为什么$userExists
根本没有返回任何内容?我认为它至少必须返回0(如果用户不存在)。
修改
因此尝试使用chris85推荐的预准备语句,并再次吐出完全相同的内容。 $stmt
返回Resource ID #2
,$ userExists绝对没有返回任何内容。没有失败,没有错误。
$SQLString = "SELECT COUNT(*) FROM dbo.Users WHERE Username = '$username'";
$stmt = sqlsrv_prepare( $conn, $SQLString, array( &$qty, &$id));
$userExists = sqlsrv_fetch_object( $stmt);
if( !$stmt ) {
die( print_r( sqlsrv_errors(), true));
}
echo("test");
print_r($stmt);
print_r($userExists);
echo("test2");