php没有向mysql传递正确的数据

mbzjlibv  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(289)

我无法将正确的数据传递到mysql我不知道我做错了什么请帮助我我的代码如下:

$con = mysqli_connect('localhost', 'root', '', 'database');
if($con) {
    echo "we are connected";
} else {
    die("connection failed");
}

if(isset($_POST['submit'])) {

    // echo "Yeah it works";
    $user = $_POST['username'];
    $pass = $_POST['password'];

    $query = "INSERT INTO users(username, password) VALUES ('$user', '$pass')";
    $result = mysqli_query($con, $query);

    if(!$result) {
        die("Query failed");
    }
}

当我运行这个代码时 0 为了 username 以及 0 为了 password . 不管我打什么 username 以及 password 我明白了 0 在数据库中。

bgibtngc

bgibtngc1#

试试这段代码,它还删除了sql注入。

$con = mysqli_connect('localhost', 'root', '', 'database');

if(! $con )
    die('Unable to connect');

foreach(array('submit', 'username', 'password') as $arg)
    if(! isset($_POST[$arg]) )
        die('Missing argument(s)');

unset($arg);
http_response_code(200);

$username = $con->real_escape_string($_POST['username']);
$password = $con->real_escape_string($_POST['password']);

$query = "INSERT INTO users (username, password) VALUES ('{$username}', '{$password}')";
if(! mysqli_query($con, $query))
    http_response_code(400);

如果此代码不起作用,请确保表中的用户名和密码是varchar的而不是int的(因为脚本插入了一个0值)

相关问题