0

无论我去多少个网站尝试让它工作,它仍然没有。我无法将已输入的数据最终存储在数据库中。表单提交,但没有返回错误。在 phpMyAdmin 中查找时,没有记录。我已经调整了一百万次,但没有运气。第二双眼睛能告诉我我做错了什么吗?

谢谢!!
蒂姆

<body>
<form action="insert.php" method="post"><br>
Date: <input type="text" name="date" id="date"><br>
Time: <input type="text" name="time" id="time"><br>
City: <input type="text" name="city" id="city"><br>
Fire Dept: <input type="text" name="fire" id="fire"><br>
Address: input type="text" name="addy" id="addy"><br>
Call Type/Level <input type="text" name="level" id="level"><br>
Description: <input type="text" name="desc" id="desc"><br>
Units: <input type="text" name="units" id="units"><br>
Submitted by: <input type="text" name"who" id="who"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>

<?php
if (isset($_POST['submit'])){

$db=mysql_connect("", "", "");
$mydb=mysql_select_db("rm911_incidents");

$date=$_Post['date'];
$time=$_Post['time'];
$city=$_Post['city'];
$fire=$_Post['fire'];
$addy=$_Post['addy'];
$level=$_Post['level'];
$desc=$_Post['desc'];
$units=$_Post['units'];
$who=$_Post['who'];

$sql = "INSERT INTO incidents(date,time,city,fire,addy,level,desc,units,who)
VALUES
('$date','$time','$city','$fire','$addy','$level','$desc','$units','$who')";
$result = mysql_query($sql);
if($result)
{
echo "<br>Input data is successful";
}
else
{
echo ("<br>Input data has failed");
}
}
?>

好的,所以我已经修复了 Leo 提到的错误(谢谢!),但这也不是问题。我使用您提供的错误报告时遇到的错误是:未定义的索引:xxx...(xxx 是数据库中的每个字段名称)。我在数据库中有一个“id”字段,auto_increment-ing - 我忘记将它设置为索引了吗?

4

6 回答 6

3

POST 数据存储在$_POST数组中,而不是$_Post数组中。您应该在服务器日志或浏览器中收到关于未定义变量的通知(如果将 PHP 消息发送到浏览器)。

于 2013-04-13T19:40:54.150 回答
1

问题在于您的帖子数组名称 $_Post

$date=$_Post['date'];
$time=$_Post['time'];
$city=$_Post['city'];
$fire=$_Post['fire'];
$addy=$_Post['addy'];
$level=$_Post['level'];
$desc=$_Post['desc'];
$units=$_Post['units'];
$who=$_Post['who'];

你应该使用 $_POST 而不是 $_Post。另外,你可以做

var_dump($_POST);

在 php 文件的顶部,因此您将能够看到表单发送到您的脚本的内容。

问候

于 2013-04-13T19:43:15.270 回答
0

您还缺少一个左方括号:

Address: input type="text" name="addy" id="addy"><br>

应该:

Address: <input type="text" name="addy" id="addy"><br>
于 2013-04-13T20:04:39.240 回答
0

尝试在最顶部的 php 文件中执行以下操作<?php

//error reporting set to all
error_reporting(E_ALL);
ini_set('display_errors', 'On');

还要将您的 php 代码放在您的 html 之前。

您应该看到正在输出的错误并能够对其进行调试。

如果您需要帮助,请在此处发布错误。

于 2013-04-13T20:14:04.720 回答
0

你能检查一下是否Submitted by: <input type="text" name"who" id="who"><br>导致错误..应该是Submitted by: <input type="text" name="who" id="who"><br>

如果这没有帮助..尝试在您的 php 文件中运行静态插入查询并检查它是否工作...

问候, 狮子座

于 2013-04-13T20:16:45.563 回答
0

改变了一些东西,这应该可以工作..如果它很可能不是你的数据库的问题

<html>
<body>
<form action="insert.php" method="POST"><br> <!-- method POST-->
Date: <input type="text" name="date" id="date"><br>
Time: <input type="text" name="time" id="time"><br>
City: <input type="text" name="city" id="city"><br>
Fire Dept: <input type="text" name="fire" id="fire"><br>
Address: <input type="text" name="addy" id="addy"><br>
Call Type/Level <input type="text" name="level" id="level"><br>
Description: <input type="text" name="desc" id="desc"><br>
Units: <input type="text" name="units" id="units"><br>
Submitted by: <input type="text" name="who" id="who"><br> <!-- name"who" changed -->
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>

<?php
if (isset($_POST['submit'])) {

$db=mysql_connect("", "", "") or die ("Cant connect");
$mydb=mysql_select_db("rm911_incidents") or die ("Cant find db");

$date = $_POST['date']; //_POST not _Post
$time = $_POST['time'];
$city = $_POST['city'];
$fire = $_POST['fire'];
$addy = $_POST['addy'];
$level = $_POST['level'];
$desc = $_POST['desc'];
$units = $_POST['units'];
$who = $_POST['who'];

$sql = "INSERT INTO incidents ( date , time, city , fire , addy , level , desc , units , who ) 
VALUES ( '$date' , '$time' , '$city' , '$fire' , '$addy' , '$level' , '$desc' , '$units' , '$who' )";
$result = mysql_query($sql) or die ("Cant insert");
if($result)
{
echo "<br>Input data is successful";
}
else
{
echo "<br>Input data has failed";
}
}
?>
于 2013-04-13T22:02:47.577 回答