php - 使用php将表单中的数据插入mysql数据库

标签 php html mysql insert

您好,我已经编写了一段代码,用于将数据从表单插入到 mysql 数据库:

$conn = new PDO("mysql:dbname=data12;host=$servername", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$ul = $_POST['fname'];
$sql="insert into t22 values('16',".$ul.")";

记录已添加,但值为空。 我还尝试过其他语法,例如:

$sql="insert into t22 values('16',$ul)";
$sql="insert into t22 values('16','".$ul."')";
$sql="insert into t22 values('16',$ul)";

请帮我解决这个问题。

最佳答案

首先要确保没有插入空值,您需要检查该值是否从表单中设置,然后在设置值时执行查询,还需要在使用 PDO 时准备语句,也不要直接在查询中输入变量,而是使用占位符。

你的代码应该是这样的:

<?php
$conn = new PDO("mysql:dbname=data12;host=$servername", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


$errors = "";

$number = 16;

if (isset($_POST['buttonName'])) {

    //check if the field is not empty


    if (empty($_POST['fname'])) {

        echo "enter name";
        $errors++;
    } else {


        $ul = $_POST['fname'];
    }

    if ($errors <= 0) {//no errors lets insert

        $sql = $conn->prepare("INSERT INTO t22 (id,name) values(?,?)");
        $sql->execute(array(
            $number,
            $ul
        ));

        echo "record entered";
    }

}

?>

希望这能为您指明正确的方向。

NB: its important that you filter and sanitize $_POST values before storing them.

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

相关文章:

html - 页脚在不同的浏览器中采用不同的尺寸

html - 当子元素的高度未知时,如何使绝对定位的元素在其父元素中居中

mysql - Sequelize 不良握手错误

php - 如何提高 MySQL INSERT 性能?

php - 更改数据库模式 cakephp 3 无需迁移

PHP:在 GNU MP 中获取 "number of bits per limb"

php - CodeIgniter - 显示成功或不成功的消息

javascript - 在通过模型传递的 View 上显示列表

php - 更新数据库表中所有行的 1 列

python - 使用特定顺序的 ID 列表从 Django 数据库获取记录