php - 将表单数据插入MySQL数据库表

标签 php mysql database forms insert

我想将表单中的数据插入到表中,但每次我点击提交时都没有任何反应,我检查并重新检查了所有内容,但找不到原因。

indextest1.php

<!DOCTYPE html>

<html>    
    <head>  
        <title></title>    
        <meta charset="UTF-8">    
        <meta name="author" content="">    
        <meta name="description" content="">    
        <meta name="keywords" content="">   
    </head>    
    <body>
        <form action="test1.php" method="post">
        <input type="text" name="name"><br>
        <input type="text" name="lastname"><br>
        <input type="radio" name="radio" value="one" checked> one<br>   
        <input type="radio" name="radio" value="two" > two<br>
        <select name="drop">   
            <option value="0" selected>0</option>    
            <option value="1">1</option>    
            <option value="2">2</option>    
            <option value="3">3</option>    
            <option value="4">4</option>    
            <option value="5">5</option>   
            <option value="6">6</option>    
            <option value="7">7</option>    
            <option value="8">8</option>    
        </select>
        <input type="checkbox" name="check" value="1"><br>    
        <input type="submit" value="Submit">   
        </form>    
    </body>   
</html>

test1.php

<?php

$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "db-test";

$connect = ("$servername, $username, $password, $dbname") or die ("ERROR DURING CONNECTION");

$name = $_POST["name"];
$lastname = $_POST["lastname"];
$radio = $_POST["radio"];
$drop = $_POST["drop"];
$check = $_POST["check"];

$sql_insert = mysql_query("INSERT INTO test-table (id, name, lastname, radio, drop, check) VALUES ('', '$name', '$lastname', '$radio', '$drop', '$check')");
        header("location: indextest1.php");

?>

表值

enter image description here

在此先感谢,我希望我提供了所有需要的信息。

最佳答案

除了其他答案,

首先,您的这部分查询:

INSERT INTO test-table (id, name, lastname, radio, drop, check)

应该读作

INSERT INTO `test-table` (id, name, lastname, radio, `drop`, `check`)

MySQL 将您的表解释为“测试减去 表”。使用刻度线,或使用下划线 test_table 重命名它,这是一个安全的分隔符。

那么您将使用两个 MySQL 保留字“drop”和“check”。对那些也使用刻度。

引用:

看看 MySQL 如何告诉您语法错误从哪里开始?

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'drop, check)

在那之后它会向你展示另一个

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'check)

澄清一下,您将 MySQL API 与

mysql_query("INSERT ...

哪些 mysql_ 函数不会与您当前的方法混合。使用相同的 from 连接进行查询

mysqli_query($connect, "INSERT ...

当然还有您对 SQL 注入(inject)持开放态度这一事实。使用准备好的语句:

您还应该针对您的 POST 数组检查空字段,例如 !empty()

旁注:如果要插入撇号或任何其他 MySQL 会提示的字符,那么您必须转义它们。无论哪种方式,你都应该。

另外,记得在header后面加上exit;。否则,如果下面有更多代码,它可能需要继续执行。

header("location: indextest1.php");
exit;

关于php - 将表单数据插入MySQL数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32429963/

相关文章:

php - 将阿拉伯语文本从 Android 手机发送到在线 MySQl 数据库

java - 如何告诉 Hibernate 不要更新某些列

java - 在 Java 客户端应用程序中从 PHP 服务器接收 *.pdf 文件

mysql - 有没有一种方法可以在将两个表连接在一起时覆盖它们的值,并在需要时添加列?

php - 通过 PHP 从 iOS 文本字段向 mySQL 数据库添加新数据

MySQL - 按字母顺序列出给定名称之前的名称详细信息(名字和姓氏分开)

php - laravel 4 如何检索登录用户数据

php - Amazon RDS 中的 lower_case_table_names 设置

php - 什么正在预热已清除的缓存?

javascript - 何时关闭 MongoDB 连接