mysqli_fetch_assoc() 的未知原因需要mysqli_result参数 1


Unknow cause for mysqli_fetch_assoc() expects parameter 1 to be mysqli_result

我知道我们已经在网站上有数千个这样的问题。相信我,我看着他们。

所以,我的

问题是,由于不知道的原因,我的SQL查询一直返回false,因此,我的mysqli_fetch_assoc()不断失败。但是,这个查询被转录到我的phpmyadmin中,我知道这是有效的,因为它在那里工作。

这是 php 代码:

<?php
require('connect.php');
$login = $_POST['login'];
$pass = $_POST['pass'];
mysqli_select_db($conn, "cerberusdb");
$sql = "SELECT _login, _pass FROM 'tblogin' WHERE _login ='".$login."' AND _pass = '".$pass."'";
$result = mysqli_query($conn, $sql);
if(mysqli_fetch_assoc($result) > 0){
$return = 'true';
$echo $return;
}else{
$return = 'false';
echo $return;
}
mysqli_close($conn);
?>

这是处理请求的Javascript,顺便说一下,我知道它有效,已经测试了$.post(),以确定vLogin和vPass是否已传递给php。

$(document).ready(function(){    
$("#logForm").submit(function(e) {
e.preventDefault();
var vLogin = $("#lgInput").val(), vPass = $("#lgPass").val();
$.post('login.php', {login: vLogin, pass: vPass}, function(data, textStatus, xhr){
alert('data:'+data+''nstatus: '+textStatus);
}); 
}); 
});

所以,如果有人能帮忙,我将不胜感激。提前谢谢。

PS:我查看了 PHP 文档,发现查询是SELECT返回对象的mysqli_query(),失败时返回 false。我只是不明白为什么它会失败。

不允许

使用表名列名Single Quotes(')。使用backtick (')

改变

'tblogin'

 `tblogin` 

喜欢

$sql = "SELECT _login, _pass FROM `tblogin` WHERE _login ='".$login."' AND _pass = '".$pass."'";
$result = mysqli_query($conn, $sql);

[注意:单击何时使用单引号双引号和反引号以了解更多信息