开发者

PHP Code Inserting Empty Records Into MySQL DB

My code inserts an empty record into the MySQL table "table1" instead of getting what inserted in the field "Name" in form1.html. Any idea why it inserts an empty record instead of what the user entered in the field?

form1.html

<!DOCTYPE 开发者_运维百科HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd"
    >
<html lang="en">
<head>
    <title>Insert Your Name</title>
</head>
<body>
    <h3> Insert Your Name</h3>
    <form action="form1.php" method="post">
        <input type="text" name="Name">
            <input type="Submit" value="Submit" name="Submit">
    </form>
</body>
</html>

form.php

> <?php 
> $connection =
> mysql_connect("localhost","root","")
> or die ("Couldn't Connect To Server");
> $db = mysql_select_db("db1",
> $connection) or die ("Couldn't Select
> Database"); $query = "CREATE TABLE IF
> NOT EXISTS table1 (Name VARCHAR(20))";
> $result = mysql_query($query) or die
> ("Query Failed: " . mysql_error());
> $query = "INSERT INTO table1 (Name)
> VALUES ('$_post[Name]')"; $result =
> mysql_query($query) or die ("Query
> Failed: " . mysql_error()); $query =
> "SELECT * FROM table1"; $result =
> mysql_query($query) or die ("Query
> Failed: " . mysql_error());
>     echo "<TABLE BORDER = '1'>";
>     echo "<TR>";
>     echo "<TH>Name</TH>";
>     echo "</TR>";
>     
>     while ($row = mysql_fetch_array($result))
>     {
>         echo "<TR>";
>         echo "<TD>", $row['name'], "</TD>";
>         echo "</TR>";
>     }
>     echo "</TABLE>";
>     mysql_close($connection); ?>


Instead of

$query = "INSERT INTO table1 (Name) VALUES ('$_post[Name]')";

Try this

$query = "INSERT INTO table1 (Name) VALUES ('" .
          mysql_real_escape_string($_post['Name'],$db) . "')";


 $query = "INSERT INTO table1 (Name)
 VALUES ('{$_POST[Name]}')"; $result =
 mysql_query($query) or die ("Query
 Failed: " . mysql_error());

$_POST and $_GET are uppercase.

change the display code to:

 while ($row = mysql_fetch_array($result))
     {
         echo "<TR>";
         echo "<TD>", $row['Name'], "</TD>";
         echo "</TR>";
     }


Please change this

<input type="text" name="fname">


$query = "INSERT INTO table1 (Name)
 VALUES ('".mysql_real_escape_string($_POST[fname],$db)."')"; 


 " . ($_POST['Fname'] != "") ? $_POST['Fname'] : "No Name" ."
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜