【问题标题】:How Can I Insert Data Into Database From A Form Properly?如何正确地将表单中的数据插入数据库?
【发布时间】:2017-07-24 00:07:34
【问题描述】:

所以我一直在使用 MVC 方法制作一个表单,该方法将使用 PDO 将数据插入数据库。我有 addWine 表单、addWine 控制器、数据访问模型和 wine 类模型。在提交表单时没有任何反应,并且没有填充数据库。有人可以指出我在这里做错了什么吗?

酒类

<form action= "" method="POST">
    <table>
     <b>Fill the form to add new wine</b><p><p>
    <tr>
    <td> Wine ID:     </td>
    <td><input type="text" name= "wineID"/></td>
    </tr>

    <tr>
    <td>Wine Country ID: </td>
    <td><input type="text" name="wineCountryID"/></td>
    </tr>

    <tr>
    <td>Wine Size ID: </td>
    <td><input type="text" name="wineSizeID"/></td>
    </tr>

    <tr>
    <td>Wine Rating ID: </td>
    <td><input type="text" name="wineRatingID"/></td>
    </tr>

    <tr>
    <td>Wine Colour ID: </td>
    <td><input type="text" name="wineColourID"/></td>
    </tr>

    <tr>
    <td>Wine Package ID: </td>
    <td><input type="text" name="winePackageID"/></td>
    </tr>

    <tr>
    <td>Wine Category ID: </td>
    <td><input type="text" name="wineCategoryID"/></td>
    </tr>

    <tr>
    <td>Wine Code: </td>
    <td><input type="text" name="wineCode"/></td>
    </tr>

    <tr>
    <td>Wine Price: </td>
    <td><input type="text" name="wineCountryID"/></td>
    </tr>

    <tr>
    <td>Wine Description: </td>
    <td><input type="text" name="wineDescription"/></td>
    </tr>

    <tr>
    <td>Wine Rating: </td>
    <td><input type="text" name="wineRating"/></td>
    </tr>

    <tr>
    <td>Wine Image: </td>
    <td><input type="text" name="wineImage"/></td>
    </tr>

  </table><p><br>

  <center><input type="submit" name= "addWineButton" value="Add Wine"></center><p><p><p><p>
  </form>

添加葡萄酒控制器

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

session_start();
require_once('../Model/dataAccess.php');
require_once('../Model/wine.class.php');

$status = false;

if(isset($_POST["addWineButton"])){

$wineID = $_POST["wineID"];
$wineCountryID = $_POST["wineCountryID"];
$wineSizeID = $_POST["wineSizeID"];
$wineRatingID = $_POST["wineRatingID"];
$wineColourID = $_POST["wineColourID"];
$packageID = $_POST["packageID"];
$wineCategoryID = $_POST["wineCategoryID"];
$wineCode = $_POST["wineCode"];
$price = $_POST["price"];
$description = $_POST["description"];
$wineRating = $_POST["wineRating"];
$wineIMG = $_POST["wineIMG"];

$wineAdd = new Wine();
$wineAdd->wineID = htmlentities($wineID);
$wineAdd->wineCountryID = htmlentities($wineCountryID);
$wineAdd->wineSizeID = htmlentities($wineSizeID);
$wineAdd->wineRatingID = htmlentities($wineRatingID);
$wineAdd->wineColourID = htmlentities($wineColourID);
$wineAdd->packageID = htmlentities($packageID);
$wineAdd->wineCategoryID = htmlentities($wineCategoryID);
$wineAdd->wineCode = htmlentities($wineCode);
$wineAdd->price = htmlentities($price);
$wineAdd->description = htmlentities($description);
$wineAdd->wineRating = htmlentities($wineRating);
$wineAdd->wineIMG = htmlentities($wineIMG);

addWine($wineAdd);
$status = "$description has been updated.";
 }
?>

葡萄酒类模型

<?php

class Wine {


var $wineID;
var $wineSizeID;
var $wineCountryID;
var $wineRatingID;
var $wineColourID;
var $wineCode;
var $price;
var $description;
var $wineRating;
var $wineIMG;
var $packageID;
var $wineCategoryID;

function __get($name){
return $this->$name;
}
function __set($name,$value){
$this->$name=$value;
 }
}
?>

数据访问模型

function addWine($wineAdd){
global $pdo;
$statement = $pdo->prepare('INSERT INTO Wine
(wineID, wineCountryID, wineSizeID, wineRatingID, wineColourID, packageID,
wineCategoryID, wineCode, price, description, wineRating, wineIMG) VALUES  (?,?,?,?,?,?,?,?,?,?,?,?)');
$statement->execute([$wineAdd->wineID,
                     $wineAdd->wineCountryID,
                     $wineAdd->wineSizeID,
                     $wineAdd->wineRatingID,
                     $wineAdd->wineColourID,
                     $wineAdd->packageID,
                     $wineAdd->wineCategoryID,
                     $wineAdd->wineCode,
                     $wineAdd->price,
                     $wineAdd->description,
                     $wineAdd->wineRating,
                     $wineAdd->wineIMG]);
  $statement->fetch();
  }

【问题讨论】:

  • 您是否有理由在 $_REQUEST 而不是 $_POST 中查找表单值?
  • @devlincarnate 我在关注一个例子。我最初将它作为 $_POST 但那也不起作用。
  • 您需要养成accepting answers 的习惯,它可以帮助您解决问题。您将获得积分,并鼓励其他人帮助您。
  • @JayBlanchard 我完全愿意接受有助于我解决问题的答案。
  • 您的其他问题都没有可接受的答案吗?

标签: php forms pdo


【解决方案1】:

代码现在正在运行。我已经更新了原始帖子以反映更改。感谢大家的帮助。

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多