0
<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> 

这里出现错误,因为未定义的索引 id、fname、lastname,当我在其中输入值时,出现 db 错误

4

2 回答 2

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' )";

顺便说一句,您的数据库错误是什么?

于 2013-11-15T05:05:48.620 回答
0

POST只有在编辑表单时才会设置这些值POST。您可以使用isset()

$id =    isset($_POST['id'])? $_POST['id'] : NULL;

对其他人也一样。

发生这种情况是因为您对该 PHP 代码没有任何条件来阻止它在表单加载时第一次执行。它们只应在提交表单时执行。你可以用

if(isset($_POST))
{ 
    // Your existing database code here
}
于 2013-11-15T05:02:20.683 回答