我想要,当用户按下“提交”按钮时,输入的数据保存在数据库中...
没有显示错误,但仍未在数据库中插入任何数据。
请帮助
<?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";
}
}
?>
请告诉错误。
答案 0 :(得分:1)
此代码仅执行声明和变量影响。
在第一部分中,您将使用2种方法定义一个名为database的类:
第二部分只是将$ _POST变量放在另一个变量中。
要使用此代码插入列,您需要构造一个数据库实例($db = new database();
),并使用您拥有的$ _POST参数调用该实例的插入方法($db->insert(...)
)。 / p>
除此之外,您不应将声明(例如类或函数声明)和具有副作用的代码(将要执行的代码)混合使用。
由于SQL注入的风险,您也不应将来自用户的原始变量放入代码中。
您可以阅读PHP The right way,其中列出了PHP的标准和良好习惯。