用于在MySQL数据库中插入记录的HTML表单的PHP API

用于在MySQL数据库中插入记录的HTML表单的PHP API,php,mysql,Php,Mysql,如果这是一个重复的问题,我提前表示歉意,但我正在尝试创建一个带有PHP API的HTML表单,以便在MySQL数据库中添加新记录 以下是我当前的HTML代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="

如果这是一个重复的问题,我提前表示歉意,但我正在尝试创建一个带有PHP API的HTML表单,以便在MySQL数据库中添加新记录

以下是我当前的HTML代码:

<!DOCTYPE html>
<html lang="en">

<head>

  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <meta name="description" content="">
  <meta name="author" content="">

  <title>CCRP - Add New Party Member</title>

  <!-- Custom fonts for this template-->
  <link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
  <link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">

  <!-- Custom styles for this template-->
  <link href="css/sb-admin-2.min.css" rel="stylesheet">

<script>
    <?php require_once("api/create.php"); ?>
</script>

</head>

<body id="page-top">

  <!-- Page Wrapper -->
  <div id="wrapper">

    <!-- Sidebar -->
    <ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">

      <!-- Sidebar - Brand -->
      <a class="sidebar-brand d-flex align-items-center justify-content-center" href="index.html">
        <!-- <div class="sidebar-brand-icon rotate-n-15">
          <!-- <i class="fas fa-laugh-wink"></i>
        </div> -->
        <div class="sidebar-brand-text mx-3"><img src="img/republican_logo.png" width = "50" height="50">&nbsp;&nbsp;CCRP</div>
      </a>

      <!-- Divider -->
      <hr class="sidebar-divider my-0">

     <!-- Nav Item - Dashboard -->
      <li class="nav-item">
        <a class="nav-link" href="index.html">
          <i class="fas fa-fw fa-table"></i>
          <span>Database</span></a>
      </li>

      <!-- Divider -->
      <hr class="sidebar-divider">

      <!-- Heading -->
      <div class="sidebar-heading">
        User Interface
      </div>

      <!-- Nav Item - Pages Collapse Menu -->
      <li class="nav-item">
        <a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapsePages" aria-expanded="true" aria-controls="collapsePages">
          <i class="fas fa-fw fa-tachometer-alt"></i>
          <span>Menu</span>
        </a>
        <div id="collapsePages" class="collapse show" aria-labelledby="headingPages" data-parent="#accordionSidebar">
          <div class="bg-white py-2 collapse-inner rounded">
            <h6 class="collapse-header">Update Database</h6>
            <a class="collapse-item active" href="create.html">Add New Members</a>
            <a class="collapse-item" href="#">Email <small>(beta)</small></a>
            <a class="collapse-item" href="#">Mass Email <small>(beta)</small></a>          
            <!-- <h6 class="collapse-header">User Account</h6>
            <a class="collapse-item" href="login.html">Login</a>
            <a class="collapse-item" href="register.html">Register</a>
            <a class="collapse-item" href="forgot-password.html">Forgot Password</a> -->
            <div class="collapse-divider"></div>
            <!-- <a class="collapse-item" href="blank.html">Blank Page</a> -->
          </div>
        </div>
      </li>

      <!-- Divider -->
      <hr class="sidebar-divider">

      <!-- Sidebar Toggler (Sidebar) -->
      <div class="text-center d-none d-md-inline">
        <button class="rounded-circle border-0" id="sidebarToggle"></button>
      </div>

    </ul>
    <!-- End of Sidebar -->

    <!-- Content Wrapper -->
    <div id="content-wrapper" class="d-flex flex-column">

      <!-- Main Content -->
      <div id="content">

        <!-- Topbar -->
        <nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow">

          <!-- Sidebar Toggle (Topbar) -->
          <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
            <i class="fa fa-bars"></i>
          </button>

          <!-- Topbar Search -->
          <!-- <form class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
            <div class="input-group">
              <input type="text" class="form-control bg-light border-0 small" placeholder="Search for..." aria-label="Search" aria-describedby="basic-addon2">
              <div class="input-group-append">
                <button class="btn btn-primary" type="button">
                  <i class="fas fa-search fa-sm"></i>
                </button>
              </div>
            </div>
          </form>

          <!-- Topbar Navbar -->
          <ul class="navbar-nav ml-auto">

            <!-- Nav Item - Search Dropdown (Visible Only XS) -->
            <li class="nav-item dropdown no-arrow d-sm-none">
              <a class="nav-link dropdown-toggle" href="#" id="searchDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                <i class="fas fa-search fa-fw"></i>
              </a>
              <!-- Dropdown - Messages -->
              <div class="dropdown-menu dropdown-menu-right p-3 shadow animated--grow-in" aria-labelledby="searchDropdown">
                <form class="form-inline mr-auto w-100 navbar-search">
                  <div class="input-group">
                    <input type="text" class="form-control bg-light border-0 small" placeholder="Search for..." aria-label="Search" aria-describedby="basic-addon2">
                    <div class="input-group-append">
                      <button class="btn btn-primary" type="button">
                        <i class="fas fa-search fa-sm"></i>
                      </button>
                    </div>
                  </div>
                </form>
              </div>
            </li>

            <!-- Nav Item - Alerts -->
            <!-- <li class="nav-item dropdown no-arrow mx-1">
              <a class="nav-link dropdown-toggle" href="#" id="alertsDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                <i class="fas fa-bell fa-fw"></i>
                <!-- Counter - Alerts -->
               <!-- <span class="badge badge-danger badge-counter">3+</span>
              </a>
              <!-- Dropdown - Alerts -->
             <!-- <div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="alertsDropdown">
                <h6 class="dropdown-header">
                  Alerts Center
                </h6>
                <a class="dropdown-item d-flex align-items-center" href="#">
                  <div class="mr-3">
                    <div class="icon-circle bg-primary">
                      <i class="fas fa-file-alt text-white"></i>
                    </div>
                  </div>
                  <div>
                    <div class="small text-gray-500">December 12, 2019</div>
                    <span class="font-weight-bold">A new monthly report is ready to download!</span>
                  </div>
                </a>
                <a class="dropdown-item d-flex align-items-center" href="#">
                  <div class="mr-3">
                    <div class="icon-circle bg-success">
                      <i class="fas fa-donate text-white"></i>
                    </div>
                  </div>
                  <div>
                    <div class="small text-gray-500">December 7, 2019</div>
                    $290.29 has been deposited into your account!
                  </div>
                </a>
                <a class="dropdown-item d-flex align-items-center" href="#">
                  <div class="mr-3">
                    <div class="icon-circle bg-warning">
                      <i class="fas fa-exclamation-triangle text-white"></i>
                    </div>
                  </div>
                  <div>
                    <div class="small text-gray-500">December 2, 2019</div>
                    Spending Alert: We've noticed unusually high spending for your account.
                  </div>
                </a>
                <a class="dropdown-item text-center small text-gray-500" href="#">Show All Alerts</a>
              </div>
            </li>

            <!-- Nav Item - Messages -->
            <!-- <li class="nav-item dropdown no-arrow mx-1">
              <a class="nav-link dropdown-toggle" href="#" id="messagesDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                <i class="fas fa-envelope fa-fw"></i>
                <!-- Counter - Messages -->
                <!-- <span class="badge badge-danger badge-counter">7</span>
              </a>
              <!-- Dropdown - Messages -->
              <!-- <div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="messagesDropdown">
                <h6 class="dropdown-header">
                  Message Center
                </h6>
                <a class="dropdown-item d-flex align-items-center" href="#">
                  <div class="dropdown-list-image mr-3">
                    <img class="rounded-circle" src="https://source.unsplash.com/fn_BT9fwg_E/60x60" alt="">
                    <div class="status-indicator bg-success"></div>
                  </div>
                  <div class="font-weight-bold">
                    <div class="text-truncate">Hi there! I am wondering if you can help me with a problem I've been having.</div>
                    <div class="small text-gray-500">Emily Fowler · 58m</div>
                  </div>
                </a>
                <a class="dropdown-item d-flex align-items-center" href="#">
                  <div class="dropdown-list-image mr-3">
                    <img class="rounded-circle" src="https://source.unsplash.com/AU4VPcFN4LE/60x60" alt="">
                    <div class="status-indicator"></div>
                  </div>
                  <div>
                    <div class="text-truncate">I have the photos that you ordered last month, how would you like them sent to you?</div>
                    <div class="small text-gray-500">Jae Chun · 1d</div>
                  </div>
                </a>
                <a class="dropdown-item d-flex align-items-center" href="#">
                  <div class="dropdown-list-image mr-3">
                    <img class="rounded-circle" src="https://source.unsplash.com/CS2uCrpNzJY/60x60" alt="">
                    <div class="status-indicator bg-warning"></div>
                  </div>
                  <div>
                    <div class="text-truncate">Last month's report looks great, I am very happy with the progress so far, keep up the good work!</div>
                    <div class="small text-gray-500">Morgan Alvarez · 2d</div>
                  </div>
                </a>
                <a class="dropdown-item d-flex align-items-center" href="#">
                  <div class="dropdown-list-image mr-3">
                    <img class="rounded-circle" src="https://source.unsplash.com/Mv9hjnEUHR4/60x60" alt="">
                    <div class="status-indicator bg-success"></div>
                  </div>
                  <div>
                    <div class="text-truncate">Am I a good boy? The reason I ask is because someone told me that people say this to all dogs, even if they aren't good...</div>
                    <div class="small text-gray-500">Chicken the Dog · 2w</div>
                  </div>
                </a>
                <a class="dropdown-item text-center small text-gray-500" href="#">Read More Messages</a>
              </div>
            </li>

            <div class="topbar-divider d-none d-sm-block"></div>

            <!-- Nav Item - User Information -->
            <li class="nav-item dropdown no-arrow">
              <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                <span class="mr-2 d-none d-lg-inline text-gray-600 small">Admin</span>
                <img class="img-profile rounded-circle" src="https://source.unsplash.com/QAB-WJcbgJk/60x60">
              </a>
              <!-- Dropdown - User Information -->
              <div class="dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-labelledby="userDropdown">
                <a class="dropdown-item" href="#">
                  <i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
                  Profile
                </a>
                <a class="dropdown-item" href="#">
                  <i class="fas fa-cogs fa-sm fa-fw mr-2 text-gray-400"></i>
                  Settings
                </a>
                <a class="dropdown-item" href="#">
                  <i class="fas fa-list fa-sm fa-fw mr-2 text-gray-400"></i>
                  Activity Log
                </a>
                <div class="dropdown-divider"></div>
                <a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal">
                  <i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>
                  Logout
                </a>
              </div>
            </li>

          </ul>

        </nav>
        <!-- End of Topbar -->

        <!-- Begin Page Content -->
        <div class="container-fluid">

          <!-- Page Heading -->
          <h1 class="h3 mb-4 text-gray-800">Add New Member</h1>

        <!-- Form to Add New Members -->
            <form action="" method="post">
                    <div class="form-group">
                        <label for="name">Name</label>
                        <input class="form-control" type="text" name="name" id="name" placeholder="LAST, FIRST MIDDLE" value=""  maxlength="40" onkeyup="this.value = this.value.toUpperCase();">
                    </div>
                    <div class="form-group">
                        <label for="residential_address">Residential Address</label>
                        <input class="form-control" type="text" name="residential_address" id="residential_address" value="" maxlength="50" onkeyup="this.value = this.value.toUpperCase();">
                    </div>
                    <div class="form-group">
                        <label for="mailing_address">Mailing Address</label>
                        <input class="form-control" type="text" name="mailing_address" id="mailing_address" value="" maxlength="65" onkeyup="this.value = this.value.toUpperCase();">
                    </div>
                    <div class="form-group">
                        <label for="precinct">Precinct</label>
                        <input class="form-control" type="text" name="precinct" id="precinct" placeholder="##-##" value="" maxlength="5" onkeyup="this.value = this.value.toUpperCase();">
                    </div>
                    <div class="form-group">
                        <label for="age">Age</label>
                        <input class="form-control" type="number" name="age" id="age" placeholder="##" value="" maxlength="2">
                    </div>
                    <div class="form-group">
                        <label for="ethnicity">Ethnicity</label>
                        <input class="form-control" type="text" name="ethnicity" id="ethnicity" placeholder="NL" value="" maxlength="2" onkeyup="this.value = this.value.toUpperCase();">
                    </div>
                    <div class="form-group">
                        <label for="gender">Gender</label>
                        <input class="form-control" type="text" name="gender" id="gender" placeholder="M" value="" maxlength="1" onkeyup="this.value = this.value.toUpperCase();">
                    </div>
                    <div class="form-group">
                        <label for="party">Party</label>
                        <input class="form-control" type="text" name="party" id="party" placeholder="REP" value="" maxlength="3" onkeyup="this.value = this.value.toUpperCase();">
                    </div>
                    <div class="form-group">
                        <label for="race">Race</label>
                        <input class="form-control" type="text" name="race" id="race" placeholder="W" value="" maxlength="1" onkeyup="this.value = this.value.toUpperCase();">
                    </div>
                    <div class="form-group">
                        <label for="phone">Phone Number</label>
                        <input class="form-control" type="text" name="phone" id="phone" placeholder="###-###-#####" value="" maxlength="12">
                    </div>  
                    <input class="btn btn-primary mb-2" type="submit" name="btn_save" value="Submit">                                                                                                                                                                                                   
                </form>           
        </div>
        <!-- /.container-fluid -->

      </div>
      <!-- End of Main Content -->

      <!-- Footer -->
      <footer class="sticky-footer bg-white">
        <div class="container my-auto">
          <div class="copyright text-center my-auto">
            <span>Copyright &copy; <a href="https://cascosigns.com/">Casco Signs Inc.</a> 2019</span>
          </div>
        </div>
      </footer>
      <!-- End of Footer -->

    </div>
    <!-- End of Content Wrapper -->

  </div>
  <!-- End of Page Wrapper -->

  <!-- Scroll to Top Button-->
  <a class="scroll-to-top rounded" href="#page-top">
    <i class="fas fa-angle-up"></i>
  </a>

  <!-- Logout Modal-->
  <div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="exampleModalLabel">Ready to Leave?</h5>
          <button class="close" type="button" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">×</span>
          </button>
        </div>
        <div class="modal-body">Select "Logout" below if you are ready to end your current session.</div>
        <div class="modal-footer">
          <button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
          <a class="btn btn-primary" href="login.html">Logout</a>
        </div>
      </div>
    </div>
  </div>

  <!-- Bootstrap core JavaScript-->
  <script src="vendor/jquery/jquery.min.js"></script>
  <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>

  <!-- Core plugin JavaScript-->
  <script src="vendor/jquery-easing/jquery.easing.min.js"></script>

  <!-- Custom scripts for all pages-->
  <script src="js/sb-admin-2.min.js"></script>

</body>

</html>


CCRP-增加新党员


  • 用户界面
  • 更新数据库

添加新成员 名称 居住地址 通讯地址 警区 年龄 种族渊源 性别 聚会 比赛 电话号码 版权及副本;2019 准备好离开了吗? × 如果您准备结束当前会话,请选择下面的“注销”。 取消
下面是我当前的PHP代码:

<?php

// Initialize Database Connection
$dbhost = "localhost";
$dbuser = "root";
$dbpwd = "";
$dbname = "ccrp_db";
$conn = new mysqli($dbhost, $dbuser, $dbpwd, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully.";

// Identify table and form elements
if(isset($_POST['type'])){
    $id = $_POST['id'];
    $name = $_POST['name'];
    $residential_address = $_POST['residential_address'];
    $mailing_address = $_POST['mailing_address'];
    $precinct = $_POST['precinct'];
    $age = $_POST['age'];
    $ethnicity = $_POST['ethnicity'];
    $gender = $_POST['gender'];
    $party = $_POST['party'];
    $race = $_POST['race'];
    $phone = $_POST['phone'];
}
// Create SQL statement
$query="INSERT INTO members (name, residential_address, mailing_address, precinct, age, ethnicity, gender, party, race, phone) VALUES (:name, :residential_address, :mailing_address, :precinct, :age, :ethnicity, :gender, :party, :race, :phone)";
mysqli_query($conn, $query);

?>


我知道PHP代码不完整,但我不确定我还需要什么。我对用PHP编写代码相当陌生。

试试看:

<?php

// Initialize Database Connection
$dbhost = "localhost";
$dbuser = "root";
$dbpwd = "";
$dbname = "ccrp_db";

// open up a PDO database connection, which is better than mysqli for approx. 420 reasons
$conn = new PDO('mysql:host=' . $dbhost . ';dbname=' . $dbname . ';charset=utf8', $dbuser, $dbpwd);

// Only save things to the database if this is a POST
if(isset($_POST['type'])){
    $id = $_POST['id'];
    $name = $_POST['name'];
    $residential_address = $_POST['residential_address'];
    $mailing_address = $_POST['mailing_address'];
    $precinct = $_POST['precinct'];
    $age = $_POST['age'];
    $ethnicity = $_POST['ethnicity'];
    $gender = $_POST['gender'];
    $party = $_POST['party'];
    $race = $_POST['race'];
    $phone = $_POST['phone'];

    // build out our SQL INSERT statement
    $sql = "INSERT INTO members (name, residential_address, mailing_address, precinct, age, ethnicity, gender, party, race, phone) VALUES (:name, :residential_address, :mailing_address, :precinct, :age, :ethnicity, :gender, :party, :race, :phone)";

    // prepare the query for binding of paremeters
    $statement = $conn->prepare($sql);

    // bind parameters to variables
    $statement->bindParam(':name', $name);
    $statement->bindParam(':residential_address', $residential_address);
    $statement->bindParam(':mailing_address', $mailing_address);
    $statement->bindParam(':precinct', $precinct);
    $statement->bindParam(':age', $age);
    $statement->bindParam(':ethnicity', $ethnicity);
    $statement->bindParam(':gender', $gender);
    $statement->bindParam(':party', $party);
    $statement->bindParam(':race', $race);
    $statement->bindParam(':phone', $phone);

    // execute our bound query
    $statement->execute();

?>


您完全没有更新和删除部件。但我想插页也不会起作用。你需要找到一些正确使用准备好的语句和参数的例子。我现在还不关心更新和删除。我现在正在努力增加新的记录。我还需要什么?这不是故意的粗鲁,而是:“创建一个HTML表单,后面有PHP API,这样我就可以在MySQL数据库中添加新记录”-这描述了几乎所有带有标签的问题,只要看看一些初级表单处理和CRUD教程,你就会明白其中的诀窍。因为你才刚刚开始,停止使用mysqli。它是迟钝的,不必要的冗长,并且使编写安全代码变得困难。PDO是另一个内置选项,或者使用包含数据库抽象的框架,如Laravel。请详细解释答案。这样,每个人都知道你做了什么,他们的错误是什么。