我是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());
}
?>
你可以纠正我的错误吗?
答案 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());
}
?>