PHP表单没有发布到Mysql数据库

时间:2012-05-08 17:34:18

标签: php mysql lamp

我是PHP和SQL脚本的新手,所以这可能是一个我无法弄清楚的简单修复。我有一个名为InventoryControl的数据库,其下有一个资产表。出于测试目的,我可以解决PHP和SQL问题,我有一个非常简单的网页,只有一个表单:

<form action="insertasset.php" method="post">
Asset Tag: <input type="text" name="assettag" />
<input type="submit" />
</form>

在提交时,它将加载此php脚本:

<?php
echo "PHP TEST!";
echo $_POST["assettag"];
$con=mysql_connect("localhost","sampleuser","samplepass");
if (!$con)
  {
  echo "CONNECTION FAILED!";
  die('Could not connect: ' . mysql_error());
  }
echo "I succeeded!";
mysql_select_db("InventoryControl", $con);

$sql="INSERT INTO assets (asset_tag, manufacturer, model, type, location, decomissioned, employee_owner, computer_name, price, day, month, yea$
VALUES
('$_POST[assettag]', asdf, asdf, asdf, 0, 0, asdf, asdf, 0, 0, 0, 0)";
echo "Posted!";
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  echo "I didn't work";
  }
echo "1 record added";

mysql_close($con);


?>

我在那里添加了多行echo以进行测试以查看故障发生的位置但是我遇到了运行PHP脚本时得到的唯一响应问题 “PHP测试!”然后是我刚从上一个表单发布的信息。所以,我知道它正在加载PHP脚本,并且它正在从表单中发布数据,但我似乎无法将其纳入表中。据我所知,该表对要填充的列没有任何要求(我使用非常基本的参数进行设置,asset_tag是主键,否则它只是用于保存数据的列)。如果有人能给新手一些帮助,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果你使用mysql_query()函数,请使用它:

mysql_query("...") or die(mysql_error());

这样你就会看到错误。

当遇到问题时,您需要在INSERT INTO语句中单引号引用您的值。

但您也可以单引号列名。有时列名称可以是特殊关键字,如“order”。

如果将其与mysql_error()一起使用,则可以更清楚地看到错误详细信息。

答案 1 :(得分:0)

$asset=$_POST['assettag'];
$sql="INSERT INTO assets VALUES ('".$asset."', 'asdf', 'asdf', 'asdf', 0, 0, 'asdf', 'asdf', 0, 0, 0, 0)";
echo "Posted!";
if (!mysql_query($sql))
{
 die('Error: ' . mysql_error());
 echo "I didn't work";
}