如何调试一个基于数据库的表单,其中使用了PHP和MySQL


How to debug a database-based form, which uses PHP and MySQL?

我有7个填充的下拉列表,我希望它的值再次存储到另一个表中。

下面是我的代码:
    <div id="main">
            <div id="sidebar">
                <h3>add documents</h3>
                <div class="bordered-form">
                <!-- PARA SA TEXTFIELDS -->
                <form class="add-docs" method="post">
                <ul class="linkedList">
                    <label>
                        Document Name:
                    </label>
                <div>
                    <input type="text" placeholder="Document Name" name="document_name"/>
                </div>
                    <label>
                        Amount:
                    </label>
                <div>
                    <input type="text" placeholder="Amount" name="document_amount"/>
                </div>

                <!-- Dropdowns Here -->
                <div>
                <label>
                    Requirement 1
                </label for="requirement">
                 <div class="form-group">
                 <div class="selectContainer">
                 <?php
                     $result=mysql_query($sql);
                     $options1="";
                     while ($row=mysql_fetch_array($result)) { 
                            $id=$row["requirement_id"]; 
                            $requirement_name=$row["requirement_name"]; 
                            $options1.="<OPTION VALUE='"$requirement_name'">".$requirement_name;
                     }
                ?>
                <select name="requirement1" class="form-control SelectWidth">               
                <option  value="0">*Select a Requirement* <?=$options1?>
                </select>                   
                </div>
                </div>
                </div>

                <!-- Dropdowns Here -->
                <div>
                <label>
                    Requirement 2
                </label for="requirement">
                 <div class="form-group">
                 <div class="selectContainer">
                 <?php
                     $result=mysql_query($sql);
                     $options2="";
                     while ($row=mysql_fetch_array($result)) { 
                            $id=$row["requirement_id"]; 
                            $requirement_name=$row["requirement_name"]; 
                            $options2.="<OPTION VALUE='"$requirement_name'">".$requirement_name;
                     }
                ?>
                <select name="requirement2" class="form-control SelectWidth">               
                <option  value="0">*Select a Requirement* <?=$options2?>
                </select>                   
                </div>
                </div>
                </div>
                    <!-- Dropdowns Here -->
                <div>
                <label>
                    Requirement 3
                </label for="requirement">
                 <div class="form-group">
                 <div class="selectContainer">
                 <?php
                     $result=mysql_query($sql);
                     $options3="";
                     while ($row=mysql_fetch_array($result)) { 
                            $id=$row["requirement_id"]; 
                            $requirement_name=$row["requirement_name"]; 
                            $options3.="<OPTION VALUE='"$requirement_name'">".$requirement_name;
                     }
                ?>
                <select name="requirement3" class="form-control SelectWidth">               
                <option  value="0">*Select a Requirement* <?=$options3?>
                </select>                   
                </div>
                </div>
                </div>

                    <!-- Dropdowns Here -->
                <div>
                <label>
                    Requirement 4
                </label for="requirement">
                 <div class="form-group">
                 <div class="selectContainer">
                 <?php
                     $result=mysql_query($sql);
                     $options4="";
                     while ($row=mysql_fetch_array($result)) { 
                            $id=$row["requirement_id"]; 
                            $requirement_name=$row["requirement_name"]; 
                            $options4.="<OPTION VALUE='"$requirement_name'">".$requirement_name;
                     }
                ?>
                <select name="requirement4" class="form-control SelectWidth">               
                <option  value="0">*Select a Requirement* <?=$options4?>
                </select>                   
                </div>
                </div>
                </div>
                    <!-- Dropdowns Here -->
                <div>
                <label>
                    Requirement 5
                </label for="requirement">
                 <div class="form-group">
                 <div class="selectContainer">
                 <?php
                     $result=mysql_query($sql);
                     $options5="";
                     while ($row=mysql_fetch_array($result)) { 
                            $id=$row["requirement_id"]; 
                            $requirement_name=$row["requirement_name"]; 
                            $options5.="<OPTION VALUE='"$requirement_name'">".$requirement_name;
                     }
                ?>
                <select name="requirement5" class="form-control SelectWidth">               
                <option  value="0">*Select a Requirement* <?=$options5?>
                </select>                   
                </div>
                </div>
                </div>
                    <!-- Dropdowns Here -->
                <div>
                <label>
                    Requirement 6
                </label for="requirement">
                 <div class="form-group">
                 <div class="selectContainer">
                 <?php
                     $result=mysql_query($sql);
                     $options6="";
                     while ($row=mysql_fetch_array($result)) { 
                            $id=$row["requirement_id"]; 
                            $requirement_name=$row["requirement_name"]; 
                            $options6.="<OPTION VALUE='"$requirement_name'">".$requirement_name;
                     }
                ?>
                <select name="requirement6" class="form-control SelectWidth">               
                <option  value="0">*Select a Requirement* <?=$options6?>
                </select>                   
                </div>
                </div>
                </div>
                    <!-- Dropdowns Here -->
                <div>
                <label>
                    Requirement 7
                </label for="requirement">
                 <div class="form-group">
                 <div class="selectContainer">
                 <?php
                     $result=mysql_query($sql);
                     $options7="";
                     while ($row=mysql_fetch_array($result)) { 
                            $id=$row["requirement_id"]; 
                            $requirement_name=$row["requirement_name"]; 
                            $options7.="<OPTION VALUE='"$requirement_name'">".$requirement_name;
                     }
                ?>
                <select name="requirement7" class="form-control SelectWidth">               
                <option  value="0">*Select a Requirement* <?=$options7?>
                </select>                   
                </div>
                </div>
                </div>
                <br>
                <div>
                    <button name="btn-add" id="btnADD" type="submit" class="btn btn-info">ADD</button>
                    <button id="btnCANCEL" type="button" class="btn btn-info">CANCEL</button>
                </ul>
            </div>
            </div>


                </form>
        </div>
    </div>

我只是希望那些'requirement_name'/s从'requirements_tbl'被存储到另一个名为'document_tbl'的表。

我的PHP代码的HTML文件的顶部是:

<?php
include_once 'dbconnect.php';
$sql="SELECT * FROM requirements_tbl";

if(isset($_POST['btn-add']))
{
$document_name = mysql_real_escape_string($_POST[ 'document_name' ]);
$document_amount = mysql_real_escape_string($_POST[ 'document_amount' ]);
$req1 = mysql_real_escape_string($_POST[ 'requirement1' ]);
$req2 = mysql_real_escape_string($_POST[ 'requirement2' ]);
$req3 = mysql_real_escape_string($_POST[ 'requirement3' ]);
$req4 = mysql_real_escape_string($_POST[ 'requirement4' ]);
$req5 = mysql_real_escape_string($_POST[ 'requirement5' ]);
$req6 = mysql_real_escape_string($_POST[ 'requirement6' ]);
$req7 = mysql_real_escape_string($_POST[ 'requirement7' ]);
$q="INSERT INTO document_tbl (document_name,document_amount,requirement1,requirement2,requirement3,requirement4,requirement5,requirement6,requirement7) VALUES('$document_name','$document_amount','$req1','$req2','$req3','$req4','$req5','$req6','$req7',)";


if( mysql_query($q)){

    ?>  
    <script>alert('Records successfully added!');</script>
    <?php
}

else{
    ?>
    <script>alert('Error while adding record!');</script>
    <?php
    }
}
?>

你的问题在这里(代码包装为可读性):

$q="INSERT INTO document_tbl (
    document_name,document_amount,requirement1,requirement2,requirement3,requirement4,requirement5,requirement6,requirement7
) VALUES(
    '$document_name','$document_amount','$req1','$req2','$req3','$req4','$req5','$req6','$req7',
)";

如果您检查VALUES子句的末尾,就在右括号内,您可以看到后面的逗号,这是SQL数据库通常不喜欢的。它会假设你想提供另一个值,但后来没有这样做,即这是一个语法错误。

正如在评论中所指出的,这个数据库引擎不再被支持,你应该尽快转移到PDO/MySQL或MySQLi。