PHP表单在mySQL中没有显示任何内容


PHP form not displaying anything in mySQL

我正试图弄清楚为什么我的php表单没有将字段中的数据放入mySQL数据库中。我一直在想办法解决这个问题,但已经走到了死胡同。

当用每个字段的值进行硬编码时,我的insert$sql工作得很好,但当我尝试使用从php表单输入的字段时就不行了。

当我点击提交时,我没有收到任何错误,但当我检查mySQL是否添加了另一个所有者时,什么都没有显示。

如果有人能帮我解决这个问题,我真的很感激

顺便问一下,我的$sql插入语句中的引号是否正确?

    <head>
<style>
table, th, td {
    border: 1px solid black;
    border-collapse: collapse;
}
th, td {
    padding: 5px;
}
</style>
</head>
<body>
<?php  #index.php for Assignment 10
$page_title = 'Assignment 10 for Marina Database';
include('header.html');
require('dbConn.php');
echo '<h1> Please enter the following fields:</h1>';

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$OwnerNum=$_POST['OwnerNum'];
$LastName=$_POST['LastName'];
$FirstName=$_POST['FirstName'];
$Address=$_POST['Address'];
$City=$_POST['City'];
$State=$_POST['State'];
$Zip=$_POST['Zip'];
//echo test;
try {
$sql = "INSERT INTO Owner (OwnerNum, LastName, FirstName, Address, City, State, Zip) VALUES 
('".$OwnerNum."', '".$LastName."', '".$FirstName."', '".$Address."', '".$City."', '".$State."', '".$Zip."')";
//this works when hard coded
/*$sql = "INSERT INTO Owner (OwnerNum, LastName, FirstName, Address, City, `State, Zip) VALUES ('XR34', 'Patel', 'John', '342 Picardy lane', 'Wheeling', 'IL', '60018')"; */`
$conn->exec($sql);
//echo $OwnerNum, $LastName, $FirstName, $Address, $City, $State, $Zip;
}
catch (PDOException $e)
{
echo 'Error: '.$e->getMessage();
} //end catch

}

if (isset($_POST['submit']))
{
    $stmt = $conn->prepare("select* from Owner");
    $stmt->execute();
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    echo "<table style='border: solid 1px black;'>";
    echo "<tr><th>OwnerNum</th><th>LastName</th><th>FirstName</th><th>Address</th><th>City</th><th>State</th><th>Zip</th></tr>";

class TableRows extends RecursiveIteratorIterator 
{ 
    function __construct($it) { 
        parent::__construct($it, self::LEAVES_ONLY); 
    }
    function current() {
        return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
    }
    function beginChildren() { 
        echo "<tr>"; 
    } 
    function endChildren() { 
        echo "</tr>" . "'n";
    } 
} 
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) 
    { 
         echo $v;
    }
    $conn = null;
    echo "</table>";
}
?>
<form name="createOwner" action="Assignment10newowner.php" method="POST">
  <table style="width:100%">
    <tr>
      <td>Owner Number:</td>
      <td><input type="text" name="OwnerNum"></td>
    </tr>
      <td>Last Name:</td>
      <td><input type="text" name="LastName"></td

    </tr>
    <tr>
      <td>First Name:</td>
      <td><input type="text" name="FirstName"></td

    </tr>
    <tr>
      <td>Address:</td>
      <td><input type="text" name="Address"></td

    </tr>
    <tr>
      <td>City:</td>
      <td><input type="text" name="City"></td

    </tr>
    <tr>
      <td>State:</td>
      <td><input type="text" name="State"></td

    </tr>
    <tr>
      <td>Zip:</td>
      <td><input type="text" name="Zip"></td

    </tr>
  </table>
  <br>
  <br>
  <input type="submit" value="Submit">
</form>
</body>

将$_POST值分配给类似的变量

if (isset($_POST['OwnerNum]))
{
    $OwnerNum=$_POST['OwnerNum'];
    $LastName=$_POST['LastName'];
    $FirstName=$_POST['FirstName'];
    $Address=$_POST['Address'];
    $City=$_POST['City'];
    $State=$_POST['State'];
    $Zip=$_POST['Zip'];
    try {
        $sql = "INSERT INTO Owner (OwnerNum, LastName, FirstName, Address, City, State, Zip) VALUES 
        ('".$OwnerNum."', '".$LastName."', '".$FirstName."', '".$Address."', '".$City."', '".$State."', '".$Zip."')";    
        $conn->exec($sql);
        $select_owner = "SELECT * FROM Owner";
        ?>
            <table>
                <tr>
                    <td>OwnerNum</td>
                    <td>FirstName</td>
                    <td>LastName</td>
                    <td>Address</td>
                    <td>City</td>
                </tr>
        <?php       
        $conn->prepare($select_owner );
        $result = $conn->fetchAll();
        if (count($result)) {
            foreach($result as $owner){
                    ?>
                    <tr>
                        <td><?=$owner['OwnerNum'];?></td>
                        <td><?=$owner['FirstName'];?></td>
                        <td><?=$owner['LastName'];?></td>
                        <td><?=$owner['Address'];?></td>
                        <td><?=$owner['City'];?></td>
                    </tr>       
            <?php
                }
        }
        else
        {
           ?>
            <tr>
                <td colspan="5">No Onwers Found</td>            
            </tr>  
           <?php
        }
        unset($result);
        unset($select_owner);
        unset($conn);
    }
    catch (PDOException $e)
    {
        echo 'Error: '.$e->getMessage();
    } //end catch
}

代码对我来说很好,但在插入数据时,应该先捕获表单数据,然后将其存储在变量中。然后在插入查询中使用这些变量。

   if (isset($_POST['submit1']))//set your submit btn name to submit1
 {     
        $username=$_POST['OwnerNum'];//likewise catch all data
     try {
       $sql = "INSERT INTO Owner (OwnerNum, LastName, FirstName, Address, City, State, Zip) VALUES 
    (?,?,?.....)";//put the placeholders here.the num of placeholders should be equal to number of bound values