我知道我们已经在网站上有数千个这样的问题。相信我,我看着他们。
所以,我的问题是,由于不知道的原因,我的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);
[注意:单击何时使用单引号双引号和反引号以了解更多信息