繁体   English   中英

如何使用php在mysql中存储表单数据

[英]how to store form data in mysql using php

我运行以下代码,但它显示的不是将数据存储到 mysqldb 中的数组值。

<?php

       if(! empty( $_POST)){
        print_r($_POST);exit;
        $mysqli = new mysqli('localhost', 'root','','mydb');
        if($mysqli->connect_error){
        die('connect error:'. $mysqli->connect_errno .':' . $mysqli->connect_error);
        }
        }

?>

注册.php:

    <?php
     require('db.php');
     $conn=mysqli_connect("localhost","root","");
     $name = $_POST['name'];
     $name1 = $_POST['skill'];
     $name2= $_POST['exp'];
     $name3 = $_POST['sele'];
     $sql = "INSERT INTO register VALUES('".$name."','".$name1."','".$name2."','".$name3."')";
    $insert = $mysqli->query($conn,$sql);
    echo $insert;
     ?>

在浏览器中获取数组结果

连接对象已经定义 - $mysqli 为什么又是$conn 做就是了 -

$sql = "INSERT INTO register VALUES('".$name."','".$name1."','".$name2."','".$name3."')";
$insert = $mysqli->query($sql);

如果您使用procedural方法,则需要$conn

mysqli

只需替换: $insert = $mysqli->query($conn,$sql);

和:

$insert = $mysqli->query($sql);

让我们从头开始。

  • 使用 PDO(可选)。 你看起来像个新手,所以从良好的基础开始。
  • 检查您的 _POST 变量是否存在(并最终检查类型(不是数组))
  • 使用bindparam自动插入数据(无sql注入风险)

$fields = ["name", "skill", "exp", "sele"];
$params = [];
foreach($fields as $field) {
    if(!isset($_POST[$field])) {
        exit("Field required: $field");
    }
    $params[":$field"] = $_POST[$field];
}

$pdo = new PDO("mysql:host=localhost;dbname=database", 'username', 'password');
$sth = $pdo->prepare('
    INSERT INTO register VALUES(:name, :skill, :exp, :sele);
');
$sth->execute($params);

如果你仍然想坚持使用 mysqli ...

$fields = ["name", "skill", "exp", "sele"];
$params = [];
foreach($fields as $field) {
    if(!isset($_POST[$field])) {
        exit("Field required: $field");
    }
    $params[":$field"] = $_POST[$field];
}

$mysqli = new mysqli('localhost','username','password','database');
$query = $mysqli->prepare('
    INSERT INTO register VALUES(?, ?, ?, ?);
');
call_user_func_array(array($query, "bind_param"), $params);
$query->execute();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM