0

PHP のみ (フレームワークなし) で最初の MVC CRUD アプリケーションを構築しようとしています。更新用にモデルを書き出しましたが、送信ボタンをクリックしても更新がありません。

__construct の定数は適切です。それらは私の読み取りモデルで機能します。

これが私のモデルです:

<?php
class ModifyModel{

    private $db;

    public function __construct($dsn, $user, $pass){

        try {
        $this->db = new \PDO($dsn, $user, $pass);

        }
        catch (\PDOException $e) {
            echo"Couldn't access";
        }
    } //__construct

    public function modUser(){

        $first = mysql_real_escape_string($_POST["firstName"]);
        $last = mysql_real_escape_string($_POST["lastName"]);
        $handle = mysql_real_escape_string($_POST["handle"]);
        $email = mysql_real_escape_string($_POST["email"]);
        $unique = ($_POST["uniqueId"]);

        $statement = $this->db->prepare("
        UPDATE admin
        SET firstName='$first', lastName='$last', handle='$handle', email='$email'
        WHERE uniqueId= '$unique'");
            try {
                $statement->execute();
                echo"success";
                }
        catch (\PDOException $e) {
            echo "Couldn't query the database!";
            var_dump($e);
        }
        return array();
    }
}

?>

そして、これが私のコントローラーです:

<?php
    require_once "db.php";
    require_once "UserModel.php";
    require_once "UserView.php";

    $model = new UserModel(MY_DSN, MY_USER, MY_PASS);
    $view = new UserView();
    $view->showHeader('LiveTweet Admin');
    $view->showUpdateUser($model->getModifyUser($_GET["id"]));

    if (isset($_POST ['update'])){
        $model = new modUser();   
    }
    $view->showFooter();
?>

どんな助けでも大歓迎です。私は PHP に非常に慣れていないので、これが明らかな場合は申し訳ありません。

ありがとう!!!

4

1 に答える 1

3

問題はコントローラーにあります。クラスをインスタンス化してから、そのインスタンスで関数をModifyModel呼び出します。modUser

次のことを試してください。

if (isset($_POST ['update'])){
    $modifyModel = new ModifyModel(MY_DSN, MY_USER, MY_PASS);
    $result = $modifyModel->modUser();   
}
于 2013-08-02T01:52:51.697 に答える