PHP错误。 “Undefined index”表单中的数据不会插入到mysql数据库中

时间:2013-12-13 11:03:14

标签: php sql insert indexing

这是PHP中的VALUES中的错误。它说每个值都是一个未定义的索引。我已经尝试了很长时间了,但我无法弄清楚问题是什么。是在我的数据库中还是在代码中?请帮帮我:)。

<html>
<body>
<h1>A small example page to insert some data in to the MySQL database using PHP</h1>
<form action="insert.php" method="post">
Firstname: <input type="text" name="navn" /><br><br>
Lastname: <input type="text" name="adresse" /><br><br>

<input type="submit" />
</form>

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("forum", $con);

$sql="INSERT INTO bruker (navn, adresse)
VALUES
('$_POST[navn]',
'$_POST[adresse]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con)
?>

</body>
</html>

2 个答案:

答案 0 :(得分:1)

点击提交按钮后,您的帖子值将有效

<form action="" method="post">

<input type="submit" name="submit" />

<?php
if(isset($_POST['submit']))
{
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("forum", $con);

$sql="INSERT INTO bruker (navn, adresse)
VALUES
('$_POST[navn]',
'$_POST[adresse]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con)
}
?>

您还可以使用

隐藏警告

的error_reporting(0);

答案 1 :(得分:1)

尽量不要使用旧的mysql函数。切换到mysqli或PDO。我已经更新了BASIC安全性的代码,但是准备好的语句提供了更多的安全性。

试试这个:

<?php
$con = mysqli_connect("localhost","root","pw","dbname");
if (mysqli_connect_errno($con))
{
die('Could not connect: ' . mysqli_connect_error());
}

$navn = mysqli_real_escape_string($con,$_POST['navn']);
$adresse = mysqli_real_escape_string($con,$_POST['adresse']);

$sql="INSERT INTO bruker (navn, adresse)
VALUES
('$navn',
'$adresse')";

if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";

mysqli_close($con);
?>

编辑:您正以错误的方式访问数组的索引($_POST[navn]$_POST[adresse])。您必须将索引名称放在单引号中,如$_POST['navn']