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

问题描述 投票:0回答:1

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

请帮忙

<?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";
    }
}
?>

请告诉错误..

php pdo
1个回答
1
投票

此代码仅执行声明和变量操作。

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

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

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

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

除此之外,你不应该混淆声明(例如类或函数声明)和代码与副作用(将要执行的代码)。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.