PHP MySQL。添加表格内容不起作用

时间:2019-04-30 16:10:53

标签: php mysql database

如果我想使用“ INSERT INTO”将内容添加到表中,则不会收到错误消息,并且表也不会被填充。我是PHP新手。解释会很好。该数据库在XAMPP上运行。

我不知道该怎么办。我已经使用过另一个表,但是它不起作用。用户应具有对该表的完全访问权限。名称也匹配。

<?php
$username = $_POST["username"];
$passwort = $_POST["passwort"];
$mail = $_POST["mail"];
$passwort2 = $_POST["passwort2"];
$pass = sha1($passwort);
$db = mysqli_connect("localhost", "phptest1", "o84XM5wxo65QBjkF", "phptest1");
if($passwort == $passwort2) {
    echo "Password is correct.";
    $db = "INSERT INTO user (Username, Mail, Password) VALUES ('$username', '$mail', '$pass')";
} else if(!($passwort == $passwot2)) {
    echo "Password is not correct";
} ?>

1 个答案:

答案 0 :(得分:0)

变量$ db实际上包含有关连接的信息。您无法按照尝试的方式将查询插入数据库中

您可以使用$ db(以您的情况为准)来检查连接是否已正确建立,然后,如果一切正常,则可以使用mysqli_query()将查询注入到数据库中。

您可以这样做:

    <?php

    if(isset($_POST['submit'])){ //You have to check if your submit button is pressed
       $username = $_POST["username"];
       $passwort = $_POST["passwort"];
       $mail = $_POST["mail"];
       $passwort2 = $_POST["passwort2"];
       $pass = sha1($passwort);
       $db = mysqli_connect("localhost", "phptest1", "o84XM5wxo65QBjkF", "phptest1");


       if(!$db){
          die('Connection could not be established! Check provided information');
       }

       if($passwort == $passwort2) {
          echo "Password is correct.Inserting query now";
          $query = "INSERT INTO user (Username, Mail, Password) VALUES ('$username', '$mail', '$pass')";
          $result = mysqli_query($db, $query); //keep $result for debugging purposes.
       } else {
        die("Password is not correct");
       } //no need for else if as there are only 2 conditions.


       if(!$result){ //check if query was successful.
          die('Query Error');
       }
       echo "Query Updated successfully";

    }
?>

此代码非常简单,仅用于测试目的。

我只是想向您展示将查询发送到数据库的方式。为了避免潜在的注入攻击,您最好从用户检索数据时使用crypt()等其他加密技术,当然还应使用mysqli_real_escape_string()之类的功能。

检查this post,了解有关防止注射的更多信息。

希望有帮助。