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" ."
精彩评论