非常困惑,可能忽视了一些事情,但有些想法会受到赞赏!
我的查询如下:
$usernamequery = "select username + ' ' + surname as username, userid from users where username + ' ' + surname = '$username'";
$usernamestmt = sqlsrv_query( $conn, $usernamequery);
if( $usernamestmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
while( $obj = sqlsrv_fetch_object( $usernamestmt))
{
echo $username1 = $obj->username;
echo $userid = $obj->userid;
}
它不会返回任何内容,但是当我回显出$ usernamequery时我得到了
select username + ' ' + surname as username, userid from users where username + ' ' + surname = 'Joe Bloggs'
当我然后直接在SQL中运行它时,它会返回我期待的结果。
更奇怪的是,当我将PHP更改为实际查询时(即
)select username + ' ' + surname as username, userid from users where username + ' ' + surname = 'Joe Bloggs'
)
它像魅力一样运行,并返回我期待的结果。
总而言之,我已经迷茫了......!
答案 0 :(得分:1)
我有根据的猜测是$username
不包含您的想法。它可能有一个制表符或多个空格,但您可能会将其回显到HTML中,浏览器会将空白空间折叠到一个空格中。
您可以使用var_dump()检查变量的确切内容,例如:
var_dump($username);
...如果您需要更多详细信息,请bin2hex();
var_dump(bin2hex($username));
答案 1 :(得分:0)
将查询更改为
$usernamequery = "select username + ' ' + surname as fullname, userid from users where fullname = '$username'";