【发布时间】:2014-01-01 03:06:01
【问题描述】:
这是 php.ini 中的 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>
【问题讨论】:
-
1) 停止使用已弃用的
mysql_函数并改用 MySQLi 或 PDO 2) 不要盲目地将值插入到 MySQL 查询中。您的代码容易受到 SQL 注入 3) 您可以使用isset()检查该值是否实际定义在您的$_POST数组中。print_r($_POST);将列出全部内容。 -
您不应该使用 MySql,因为它已被弃用。改用 PDO 或 MySqli!
-
您正在以错误的方式获取数组的索引。
$_POST[navn]实际上是$_POST['navn']和$_POST['adresse']。但是你有比这更大的问题:你盲目地在数据库中插入值。这是一个很大的禁忌。您应该查看准备好的语句并改用mysqli。 -
你是在一个文件中写html和php吗?