Php mysqli_fetch_assoc()希望参数1是mysqli_结果,布尔值在
在密码附近的查询中使用逗号(,)并将其替换,这就是查询返回false并抛出该错误的原因Php mysqli_fetch_assoc()希望参数1是mysqli_结果,布尔值在,php,mysqli,Php,Mysqli,在密码附近的查询中使用逗号(,)并将其替换,这就是查询返回false并抛出该错误的原因 <?php require_once("connect.php"); $login1 = $_POST['email']; $password1 = $_POST['password']; $select = "SELECT id FROM loginregistration WHERE login ='$login1', password ='$password1'"; $sql = mysql
<?php
require_once("connect.php");
$login1 = $_POST['email'];
$password1 = $_POST['password'];
$select = "SELECT id FROM loginregistration WHERE login ='$login1', password ='$password1'";
$sql = mysqli_query($con,$select);
$row = mysqli_fetch_assoc($sql);
?>`
更新1
如果查询失败,则返回false。因此,您可以使用mysqli_error($con);知道错误
$select = "SELECT id FROM loginregistration WHERE login ='".$login1."' and password ='".$password1."'";
您应该做的第一件事可能是修复SQL注入漏洞(),这样您就可以实际控制执行的查询,而不是让用户定义自己的查询。接下来要做的事情是在执行任何查询后检查错误,不要假设它成功。数据库正在告诉您问题所在,但此代码忽略了该错误消息。请在password$select=“select id FROM login registration WHERE login='”“$login1.”和password='“$password1.”附近使用连接并删除逗号;我不同意大卫。。。你应该做的第一件事就是停止用纯文本存储密码!!!花些时间研究如何安全地管理登录凭据。这是否回答了您的问题?
<?php
require_once("connect.php");
$login1 = $_POST['email'];
$password1 = $_POST['password'];
$select = "SELECT id FROM loginregistration WHERE login ='".$login1."' AND password ='".$password1."'";
$sql = mysqli_query($con,$select);
if($sql === FALSE) {
die(mysqli_error($con)); // better error handling
}
$row = mysqli_fetch_assoc($sql);
?>