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 コードが実行されないようにする条件がないために発生します。フォームが送信されたときにのみ実行する必要があります。そのPHPをラップすることができます

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