首页 > 解决方案 > PHP MySQL。添加表格内容不起作用

问题描述

如果我想使用“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";
} ?>

标签: phpmysqldatabase

解决方案


变量 $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()从用户检索数据时的功能,以避免潜在的注入攻击。

查看这篇文章以获取有关防止注射的更多信息。

希望有帮助。


推荐阅读