所以我试图测试输入的用户名是否尚未存储在数据库中,因此 - >`
$testU = trim($_POST['Username']);
$qusertest = "SELECT * FROM user WHERE Username=$testU";
echo ''.$qusertest.'';
$rusertest = mysqli_query($dbc, $qusertest);
echo ''.$rusertest.'';
$utrow = mysqli_fetch_array($rusertest, MYSQLI_ASSOC);
if($utrow[1] == $testU){
$U = trim($_POST['Username']);
} else {
$errors[] = 'This username has already been taken, please select a new username';
}`
这两个回声仅用于测试代码无法正常工作的原因。 我在其他地方有类似的设置,包括$ testU变量(除了它有不同的名称,但以相同的方式工作)。
在测试代码时,我得到以下SQL查询
SELECT * FROM user WHERE Username=test
我在数据库中拥有的一个帐户名称为" test"当我在数据库中使用相同的SQL搜索它时,我得到了返回的结果。然而,当通过php执行此操作时,它会提供此错误代码。
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\ReviewWebsite\Register.php on line 37
这可能意味着"测试"实际上并没有工作(尽管MySQL工作中的SQL)并且正在返回" FALSE"而不是结果。
当更改SQL查询以包含引号('')时(我应该这样做但我测试它以查看它是否可行)我收到此错误,这导致我相信这种方法是非常错误的。
Catchable fatal error: Object of class mysqli_result could not be converted to string in C:\wamp\www\ReviewWebsite\Register.php on line 36
任何帮助都会很棒,拜托,因为我不知道我忽略了什么。