编辑数据库中的列


Edit column in database

我只是想在数据库中编辑一些特定的列,这是我第一次尝试使用PHP OPP之一,也是我第一次使用PHP,所以请耐心等待

public function prepareEdit() {
  $id = $_GET ['id'] ;
  $con = new PDO (DB_HOST, DB_USER, DB_PASS);
  $sql = "SELECT * FROM user WHERE id = $id";
  $stmt = $con->prepare($sql);
  $stmt->execute();
  echo "<form method='post' action=''>";
  while ($row = $stmt->fetch()){
    echo "<input type='text' name='name' value=".$row['name'].">";
    echo "<input type='text' name='email' value=".$row['email'].">";
    echo "<input type='text' name='message' value=".$row['message'].">";
    echo "<input type='text' name='phone' value=".$row['phone'].">";
    echo "<input type='text' name='reason'>";
   }
  echo "<input type='submit' value='Odoslat' name='send'>";
}

public function edit(){
         $correct = false;
    try {
        $con = new PDO( DB_HOST, DB_USER, DB_PASS );
        $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
        $sql = "UPDATE user(name, email, phone, message) VALUES(:name, :email, :phone, :message)";
        $stmt = $con->prepare( $sql );
        $stmt->bindValue( "name", $this->name, PDO::PARAM_STR );
        $stmt->bindValue( "email", $this->email, PDO::PARAM_STR );
        $stmt->bindValue( "phone", $this->phone, PDO::PARAM_STR );
        $stmt->bindValue( "message", $this->message, PDO::PARAM_STR );
        $stmt->execute();
        return "Formular upraveny";
    }catch( PDOException $e ) {
    return $e->getMessage();
    }
}

这是我的edit。php文件

<?php
    include_once("config.php");
    if( !(isset( $_GET['id'] ) ) ) {       
    $WebsiteUsers = new WebsiteUsers();
    $WebsiteUsers->renderAll();
    }    
else {
    $WebsiteUsers = new WebsiteUsers();
    $WebsiteUsers->prepareEdit();
     if( !(isset( $_POST['send'] ) ) ) {
            $WebsiteUsers = new WebsiteUsers();
            $WebsiteUsers->storeFormValues( $_POST );     
         }
}
?>

我有数据的形式,它没有问题,我按提交按钮发送他们,没有数据在数据库中改变,有人能帮我解决它吗?

你的SQL是不正确的:

UPDATE user SET name = :name, email = :email, phone = :phone, message = :message WHERE user_id = 123

不要忘记修改上面SQL中的WHERE条件。