Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从php到数据库的条目不起作用(SQL查询没有给出错误)_Php_Mysql_Mysqli - Fatal编程技术网

从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分钟。我只能根据我所知道的来回应。“我只能根据我所知道的来回应。”-我明白了。嗯,你发布的内容可能被否决了,因为这个人可能认为它更适合作为评论,并且/或者没有解决失败/没有发生的整个问题。我不能代表投票人发言,但根据我过去的经验,这通常是一个原因。