使用PHP发布到数据库

时间:2014-04-21 18:24:54

标签: 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;" />
    </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>

这是programadd页面。谢谢!

<?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");
?>

3 个答案:

答案 0 :(得分:0)

{ echo "Content successfully added to the database. <br /> 
                                                          ^---missing " here 

如果您没有从中获得语法错误,那么您可能会在display_errors和error_reporting关闭的情况下运行。 从不在您开发时禁用它们。它的编码相当于把你的手指塞进你的耳朵里去了#lalalala听不到你在乎你不得不告诉我lalala&#34;。

答案 1 :(得分:0)

这可能是你问题降价中的错误,但只是因为我不会提到我所看到的内容。

在查询后,您没有关闭echo上的字符串:

echo "Content successfully added to the database. <br /> 

应该是:

echo "Content successfully added to the database. <br />";

此外,为了清楚起见,您在SQL查询中直接使用$_POST数据,而无需清理或验证数据。我意识到这是为了实践,但应该提到的是,这种方法极易受SQL Injection的影响,并且可以轻松访问您的数据库。相反,您可以使用PHP的PDO Library进行连接,或者至少使用sanitize your inputs

答案 2 :(得分:0)

但是你的代码对于sql-injection很容易受到攻击,尽管你的帮助把这个改变放在你的查询语法中 -

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