簡體   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