1

我有一个表单,它将记录插入到 table 中people,而且,我想通过插入到另一个名为的表中来注册系统日志log

这是表格:

<form action="inserting.php" method="POST">
    
    <input type="text" name="name">
    <input type="text" name="mother">
    <input type="text" name="address">
    <input type="text" name="city">
    <input type="submit" name="submit" value="Insert">

</form>

页面inserting.php将是这样的:

<?php

    if(isset($_POST['submit'])){
        
        $insert = mysqli_query($con, "INSERT INTO people ('id', 'name', 'mother', 'address', 'city') VALUES (NULL, '$_POST[name]', '$_POST[mother]', '', '$_POST[address]', '$_POST[city]')");
        $log = mysqli_query($con, "INSERT INTO log (id, name, date, time) VALUES (NULL, $_POST[name], $date, $time)");

        echo $_POST['name'] . "was successfully inserted on" . $time . "of" . $date; . "."
    }

?>

怎么了?怎么做?

4

3 回答 3

0
  1. 不要$_POST在查询中使用 raw !绝不!

  2. 使用准备好的语句插入用户数据。

  3. 始终检查查询结果并阅读mysqli_error()以检查问题所在。

在这种情况下,您没有$_POST[name]输入,'因此会导致语法错误。同样在第一个查询中,您使用'而不是 ` 来包装列名。

于 2013-10-29T13:44:25.497 回答
0

对列名和表名使用反引号,而不是引号。假设自动递增 id。还引用您的 POST 名称。

INSERT INTO people (`name`, `mother`, `address`, `city`) 
VALUES ('$_POST['name']', '$_POST['mother']', '', '$_POST'[address']', '$_POST['city']')
于 2013-10-29T13:44:46.540 回答
0

如果表日志的列id是主键,则会出现错误,因为 PK 不能为 NULL。

你的查询是:

$log = mysqli_query($con, "INSERT INTO log (id, name, date, time) VALUES (NULL, $_POST[name], $date, $time)");
于 2013-10-29T13:44:52.547 回答