使用php和mysqli插入数据

时间:2016-05-21 17:26:28

标签: php html mysqli

我正在尝试从表单中获取用户输入的值,并使用php将它们保存在数据库中。这是我的dbConfig文件:

<?php
    $mysqli = new mysqli("localhost", "root", "password", "testDB");

    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }

    $mysqli->query("USE testDB");

?>

这是我的Index.php

    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="description" content="$1">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <link rel="stylesheet" type="text/css" href="style.css">

        <title>test</title>

        <?php
        include_once 'dbConfig.php';
        ?>

    </head>
    <body>
        <form> 
        <label id="first"> First name:</label><br/>
        <input type="text" name="username"><br/>
        <label id="first">Password</label><br/>
        <input type="password" name="password"><br/>
        <label id="first">Email</label><br/>
        <input type="text" name="email"><br/>
        </form>

        <button type="submit" name="save">save</button>

        <?php
        if(isset($_POST['save'])){
          $query = "INSERT INTO testDB VALUES (username, password, email)";
        }
        ?>

    </body>
</html>

问题:我不确定我的方式是否正确,Index.php中用于插入值的php代码似乎无效。

1 个答案:

答案 0 :(得分:2)

<form>相当于<form method="get">,您正在使用POST数组作为提交按钮。

两者都需要匹配,因此请将其更改为<form method="post">

但是这个:

$query = "INSERT INTO testDB VALUES (username, password, email)";

字符串值要求引用它们。

即:VALUES ('username', 'password', 'email')

但是,您没有指定列,因此您需要确保列的总数与数据库中的列数相匹配。

如果没有,那么你需要指定它们。

即:

INSERT INTO testDB (col1, col2, col3) VALUES ('username', 'password', 'email')

检查查询错误。