我是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是主键,否则它只是用于保存数据的列)。如果有人能给新手一些帮助,我将不胜感激。
答案 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";
}