【问题标题】:Saving Class to Database in Object Oriented PHP在面向对象的 PHP 中将类保存到数据库
【发布时间】:2015-06-10 14:30:46
【问题描述】:

我是面向对象编程的新手,我不知道我是否做得对。我想从提交的表单中获取数据并将其添加到数据库中。数据库凭据正确。

<?php 

require_once('../layout.php');
require_once('../dbconnect.php');

class student{
    public $f_name;
    public $l_name;
    public $email;
    public $state;
    public $phone;
    public $birthday;
    public function __construct($f_name,$l_name,$email,$state,$phone,$birthday) {
        $f_name  = $_POST['f_name'];
        $l_name  = $_POST['l_name'];
        $email = $_POST['email'];
        $state  = $_POST['state'];
        $phone = $_POST['phone'];
        $birthday = $_POST['birthday'];
        $query = 'INSERT INTO `student`(`first_name`, `last_name`, `email`, `state`, `phone`, `birthday`) VALUES ($f_name,$l_name,$email,$state,$phone,$birthday)';
        $resultquery = mysqli_query($dbconnect,$query);
        if($resultquery) {
            echo "<div class='alert alert-success'>dsf</div>";
        }
    }
}



?>



<form method="post" class="col-md-6 col-md-offset-3">
        <input name="f_name" class="form-control">
        <input name="l_name" class="form-control">
        <input name="email" class="form-control">
        <input name="state" class="form-control">
        <input name="phone" class="form-control">
        <input name="birthday" class="form-control" type="date">
        <input name="submit" type="submit" class="btn btn-default">
</form>

【问题讨论】:

  • 这与 OOP 无关,您只是 sql 格式错误。您应该使用准备好的语句来解决这个问题以及您遇到的 sql 注入问题。
  • 所有这些值都必须用引号引起来...... @jeroen 是对的,使用准备好的语句。

标签: php mysql database oop


【解决方案1】:

您不必传递所有参数,因为您也在 __construct 中声明它们。我会将它们从__construct 中删除。因此,如果没有这些参数,您可以执行以下操作:

if(!empty($_POST['submit'])) { new student(); }

您可以在类声明下方添加此部分,它会捕获该帖子。

你的班级(在我看来)会变成这样:

<?php
  class student{

    public function __construct() {
        $f_name  = $_POST['f_name'];
        $l_name  = $_POST['l_name'];
        $email = $_POST['email'];
        $state  = $_POST['state'];
        $phone = $_POST['phone'];
        $birthday = $_POST['birthday'];
        $query = 'INSERT INTO student(`first_name`, `last_name`, `email`, `state`, `phone`, `birthday`) VALUES ($f_name,$l_name,$email,$state,$phone,$birthday)';
        $resultquery = mysqli_query($dbconnect,$query);
        if($resultquery) {
            echo "<div class='alert alert-success'>dsf</div>";
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多