从php到数据库的条目不起作用(SQL查询没有给出错误)
有两个变量(登录名和密码)通过从php到数据库的条目不起作用(SQL查询没有给出错误),php,mysql,mysqli,Php,Mysql,Mysqli,有两个变量(登录名和密码)通过POST方法将ajax传递到php。接下来,我需要从数据库中获取所有信息,以确定该名称是否已经很忙。我正试图这么做,但什么也没发生。为什么?SQLs没有搞错错误 $connection = mysqli_connect('127.0.0.1', 'root', '', 'myDb'); if( $connection == false) { echo 'Не удалось подключиться к базе данных!<br>';
POST
方法将ajax
传递到php
。接下来,我需要从数据库中获取所有信息,以确定该名称是否已经很忙。我正试图这么做,但什么也没发生。为什么?<phpmyadmin
中的code>SQLs没有搞错错误
$connection = mysqli_connect('127.0.0.1', 'root', '', 'myDb');
if( $connection == false)
{
echo 'Не удалось подключиться к базе данных!<br>';
echo mysqli_connect_error();
exit();
}
session_start();
$name = $_POST['user'];
$password = $_POST['pass'];
$_SESSION['user'] = $name;
$_SESSION['pass'] = $password;
if (!isset($name, $password) || empty($name) || empty($password)){
http_response_code(400);
die();
}
$count = mysqli_query($connection, "SELECT * FROM `users` WHERE(`Name` == '$name'");
if (mysqli_num_rows($count) == 0)
{
mysqli_query("INSERT INTO `users` (`Name`, `Password`) VALUES ('$name', '$password')");
}
mysqli_close($connection);
在select语句中,$name的where子句有两个等号。可能的问题
我建议您检查一下您正在做的事情,其中有一部分做法不好,不推荐使用。您对SQL注入非常开放。由于您使用的是mysqli,请利用和。这将解决可能出现的任何令人讨厌的引用问题。说真的,第一个试图在姓名或密码中使用撇号的人会破坏您的脚本。此外,如果事情没有按预期进行,请尝试检查另一件事:如果这是一个注册表,那么您需要确保用户名不存在。现在,您正在检查用户名/密码组合,它可以使用相同的用户名但不同的密码注册多个用户。在实际登录时,最好同时检查user/pass。如果您需要检查用户名是否已被使用,则只需查询用户名(无密码)。@TheCodesee是的,插入不会将任何内容放入表中,而不是我在此处的否决票,您在一定程度上是正确的。但是,这并不包括最后一个查询的失败。我的回答比原始海报(包括insert语句失败的评论)早了3分钟。我只能根据我所知道的来回应。“我只能根据我所知道的来回应。”-我明白了。嗯,你发布的内容可能被否决了,因为这个人可能认为它更适合作为评论,并且/或者没有解决失败/没有发生的整个问题。我不能代表投票人发言,但根据我过去的经验,这通常是一个原因。