使用PHP发布到数据库
我正在尝试向所有用户添加数据到数据库。然而,它不起作用,我没有得到一个错误。这纯粹是为了练习,但仍然令人沮丧。想法使用PHP发布到数据库,php,Php,我正在尝试向所有用户添加数据到数据库。然而,它不起作用,我没有得到一个错误。这纯粹是为了练习,但仍然令人沮丧。想法 <form name="Add" id="Add" method="post" action="programadd.php"> <p>Content Name: <input name="program" type="text" id="program" style="width: 500px; height: 20px;
<form name="Add" id="Add" method="post" action="programadd.php">
<p>Content Name:
<input name="program" type="text" id="program" style="width: 500px; height: 20px;" />
</p>
<p>Content Air Date
<input name="airdate" type="date" id="airdate" />
</p>
<p>Description
<input name="description" type="text" id="description" style="width: 500px; height: 20px;" />
</p>
<p>Production
<input name="production" type="text" id="production" value="nothing" style="width: 500px; height: 20px;" />
</p>
<p>Promotions
<input name="promotion" type="text" id="promotion" value="nothing" style="width: 500px; height: 20px;" />
</p>
<p>Community
<input name="community" type="text" id="community" value="nothing" style="width: 500px; height: 20px;" />
</p>
<p>Web
<input name="web" type="text" id="web" value="nothing" style="width: 500px; height: 20px;" />
</p>
<p>
<input type="submit" name="Submit" value="Submit" />
</p>
</form>
内容名称:
内容广播日期
描述
生产
晋升
社区
网
这是程序添加页面。谢谢
<?php
include('connect-db.php');
$program = $_POST['program'];
$airdate = $_POST['airdate'];
$description = $_POST['description'];
$production = $_POST['production'];
$promotion = $_POST['promotion'];
$community = $_POST['community'];
$web = $_POST['web'];
if (mysql_query ("INSERT INTO calendar(program, airdate, description, production, promotion, community, web) VALUES
('$program', '$airdate', '$description','$production', '$promotion', '$community', '$web')"))
{ echo "Content successfully added to the database. <br />
}
else {
die(mysql_error());
}
require_once("db_connx_close.php");
?>
{echo”内容已成功添加到数据库。
^---这里缺了
如果你没有从中得到语法错误,那么你可能是在显示错误和错误报告关闭的情况下运行。在开发过程中永远不要禁用它们。这相当于将手指塞进耳朵,然后说“拉拉听不见你不在乎你要告诉我什么拉拉”.这可能是您的问题降价中的一个错误,但万一不是,我会提到我所看到的
查询后,您没有关闭回显上的字符串:
echo "Content successfully added to the database. <br />
echo”内容已成功添加到数据库。
应该是:
echo "Content successfully added to the database. <br />";
echo“内容已成功添加到数据库。
”;
另外,为了清楚起见,您直接在SQL查询中使用$\u POST
数据,而不进行数据清理或验证。我知道这是为了练习,但应该提到的是,这种方法非常容易受到攻击,并且会使您的数据库易于访问。您可以使用PHP进行连接或者至少是这样。但是,您的代码是vulnereble to sql injection,尽管在您的帮助下,您可以像下面这样在查询语法中添加此更改--
if(mysql_查询(“插入到日历(程序、airdate、说明、制作、促销、社区、web)值(“$program.”、“$airdate.”、“$description.”、“$production.”、“$promotion.”、“$community.”、“$web.”)
{
echo“内容已成功添加到数据库。
”;
}
该代码容易受到SQL注入危险的影响:您正在使用并且应该使用。您还容易受到现代API会使您更容易从中获益的影响。您应该包括connect db.php中的内容。
行echo“Conte…您没有关闭引号,因为字符串使用了双引号“
实际上不需要将每个值连接到字符串。双引号允许您直接在字符串中使用变量,而无需连接。另一种方法可以是使用类型转换的printf()
或sprintf()
函数。
echo "Content successfully added to the database. <br />";
if (mysql_query ("INSERT INTO calendar(program, airdate, description, production, promotion, community, web) VALUES ('".$program."', '".$airdate."', '".$description."','".$production."','".$promotion."', '".$community."', '".$web."')"))
{
echo "Content successfully added to the database. <br />";
}