使用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 />";
 }