<html><head>
<title>Add record to my_database/my_table</title></head>
<body>
<?php
$self = $_SERVER['PHP_SELF'];
$id = $_POST['id'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
?>
<form action="<?php echo( $self ); ?>" method="post">
ID: <input type="text" name="id" size="3">
First Name: <input type="text" name="fname" size="8">
Last Name: <input type="text" name="lname" size="8"><br>
<input type="submit" value="Submit">
</form>
<?php
if( $id and $fname and $lname)
{
$conn=@mysql_connect( "localhost", "root", "" ) or die( "Err:Conn" );
选择指定的数据库
$rs = @mysql_select_db( "add_record", $conn) or die( "Err:Db" );
创建查询
$sql = "insert into my_table ( id, first_name, last_name ) values ( $id, \"$fname\", \"$lname\" )";
执行查询
$rs = mysql_query( $sql, $conn );
if( $rs )
{
echo( "Record added:$id $fname $lname" );
}
}
?>
</body></html>
这里得到erro作为未定义的索引id,fname,lastname,当我输入这个值时得到db错误
答案 0 :(得分:4)
首先,当您的网页加载$_POST['id']
值为空时,因为您未在$_POST[];
if(isset($_POST['submit'])){
//all your php code here like below
$self = mysql_real_escape_string($_SERVER['PHP_SELF']);
$id = mysql_real_escape_string($_POST['id']);
$fname = mysql_real_escape_string($_POST['fname']);
$lname = mysql_real_escape_string($_POST['lname']);
}
和
$sql = "insert into my_table ( id, first_name, last_name ) values ( '$id', '$fname', '$lname' )";
顺便问一下你的db错误是什么?
答案 1 :(得分:0)
这些POST
值只会在表单POST
时设置。您可以使用isset()
$id = isset($_POST['id'])? $_POST['id'] : NULL;
其他人也一样。
发生这种情况是因为您没有条件禁止PHP代码在加载表单时第一次执行该代码。它们只应在提交表单时执行。您可以使用
包装该PHPif(isset($_POST))
{
// Your existing database code here
}