使用面向对象编程概念进行php表单处理的问题

时间:2012-06-06 06:49:46

标签: php

我是PHP的新手。我被要求使用OOPS在PHP中创建一个非常简单的表单。我设法创建了一个包含2个文本字段(名称和ID)的单页表单,但我现在面临的问题是,当用户单击“提交”按钮时,只有名称存储在数据库中,而不是ID。你能帮帮我吗? 下面是示例代码 提前谢谢

PERSON.PHP

<?php
class person
{
    var $id;
    var $name;
    function set_id($new_id)
    {
        $this->id=$new_id;
    }

    function get_id()
    {
        return $this->id;
    }

    function set_name($new_name)
    {
        $this->name=$new_name;
    }

    function get_name()
    {
        return $this->name;
    }
}
?>

DBINPUT.PHP

 <?php
 include 'person.php';
 ?>
 <html>
 <body>
 <form action="dbinsert.php" method="post">
  NAME<input type="text" name="name" >/
  ID<input type="text" name="ID" />
  <input type="submit" value="submit">
  </form>
  </html>
    </body>

DBINSERT.PHP

 <?php
    include("person.php");
    $con = mysql_connect("localhost", "cgiadmin", "cgi");
    if (!$con)
    {
        die("couldn't connect ".mysql_error());
    }
    mysql_select_db("oops", $con);

    $person = new person;
    $person->set_name($_POST['name']);

    $person1 = new person;
    $person1->set_id($_POST['id']);


    $sql="INSERT INTO smallprogramusingoops (NAME ,ID ) VALUES ('".$person->get_name()."','".$person1->get_id()."')";
    if (!mysql_query($sql, $con))
    {
    die('Error in inserting '.mysql_error());
    }

    ?>
你可以纠正我的错误吗?

2 个答案:

答案 0 :(得分:3)

“id”字段的name属性是块字母,而当您通过dbinsert.php访问它时,使用“id”而不是“ID”。变量/索引区分大小写。

答案 1 :(得分:-1)

您创建了两个对象。不确定PHP如何处理它,它可能会覆盖您现有的变量。

Testrun这段代码:

<?php
include("person.php");
$con = mysql_connect("localhost", "cgiadmin", "cgi");
if (!$con)
{
    die("couldn't connect ".mysql_error());
}
mysql_select_db("oops", $con);

$person = new person();
$person->set_name($_POST['name']);
$person1->set_id($_POST['id']);


$sql="INSERT INTO smallprogramusingoops (NAME ,ID ) VALUES ('".$person->get_name()."','".$person1->get_id()."')";
if (!mysql_query($sql, $con))
{
die('Error in inserting '.mysql_error());
}

?>