使用pdo和oops在数据库中插入数据

时间:2019-03-01 17:16:19

标签: php pdo

我想要,当用户按下“提交”按钮时,输入的数据保存在数据库中...
没有显示错误,但仍未在数据库中插入任何数据。

请帮助

<?php
class database
{
    private $connect;
    function __construct()
    {
        $this->connect=new PDO('mysql:host=localhost;dbname=bfgi','root','');
    }
    function insert($institution,$position,$positionname,$department,$natureofjob,$cametoknow)
    {
        $this->connect->query("INSERT INTO contact_form(institution,position,positionname,department,natureofjob,cametoknow) VALUES('$institution','$position','$positionname','$department','$natureofjob','$cametoknow')");
        return true;
    }
}
$obj=new database();

if(!empty($_POST['sbmt']))
{
    $institution=$_POST['institution'];
    $position=$_POST['position'];
    $positionname=$_POST['positionname'];
    $department=$_POST['department'];
    $natureofjob=$_POST['natureofjob'];
    $cametoknow=$_POST['cametoknow'];

    if($obj->insert($institution,$position,$positionname,$department,$natureofjob,$cametoknow))
    {
        echo "INSERTED";
    }
}
?>

请告诉错误。

1 个答案:

答案 0 :(得分:1)

此代码仅执行声明和变量影响。

在第一部分中,您将使用2种方法定义一个名为database的类:

  • 构造函数,一种用于初始化类的特殊方法
  • insert()方法

第二部分只是将$ _POST变量放在另一个变量中。

要使用此代码插入列,您需要构造一个数据库实例($db = new database();),并使用您拥有的$ _POST参数调用该实例的插入方法($db->insert(...))。 / p>

除此之外,您不应将声明(例如类或函数声明)和具有副作用的代码(将要执行的代码)混合使用。

由于SQL注入的风险,您也不应将来自用户的原始变量放入代码中。

您可以阅读PHP The right way,其中列出了PHP的标准和良好习惯。