Не удается сохранить или обновить данные базы данных в SQL - PullRequest
0 голосов
/ 17 мая 2018

Я не могу ни редактировать, ни добавлять данные в свою базу данных.Я дважды проверил свой код, но не могу найти, что пошло не так.Я использую PDO sql Даже когда я добавляю данные, они не сохраняются в базе данных.Мой код не показывает ошибки, но всякий раз, когда я проверяю мг-логику, это было правильно. Пожалуйста, помогите мне с этим

, вот мой модальный редактор

<div class="modal fade" id="edit_<?php echo $rec['bookID']; ?>" role="dialog">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-title">Edit Book</h4>
          <button type="button" class="close" data-dismiss="modal">&times;</button>
      </div>
      <form method="POST" action="editbook.php?id=<?php echo $rec['bookID']; ?>">
        <div class="modal-body">
      ISBN: <input type="text" class="form-control" name="txtIsbn" aria-describedby="ISBN" value="<?php echo $rec['isbn']; ?>">
      Title: <input type="text" class="form-control" name="txtTitle" aria-describedby="Title" value="<?php echo $rec['title']; ?>">
      Author: <input type="text" class="form-control" name="txtAuthor" aria-describedby="Author" value="<?php echo $rec['author']; ?>">
      Publisher: <input type="text" class="form-control" name="txtPublisher" aria-describedby="Publisher" value="<?php echo $rec['publisher']; ?>">
      Copyright Year: <input type="text" class="form-control" name="txtCYear" idaria-describedby="Copyright Year" value="<?php echo $rec['copyright_year']; ?>">
      Status: <select class="form-control" name="txtStatus" value="<?php echo $rec['status']; ?>">
          <option name="New">New</option>
          <option name="Old">Old</option>
          <option name="Damage">Damage</option>
          <option name="Archive">Archive</option>
          <option name="Lost">Lost</option>
          </select>
        <div class="modal-footer">
          <button type="submit" name="edit" value="Save" class="btn btn-primary">Update</a>
        </form>
      </div>
    </div>

И вот мойкод для редактирования модального

<?php
session_start();
include_once('connection.php');

if(isset($_POST['edit'])){
    $database = new Connection();
    $db = $database->open();
    try{
        $bookID = $_GET['bookID'];
        $isbn=$_POST['txtIsbn'];
        $title=$_POST['txtTitle'];
        $author=$_POST['txtAuthor'];
        $publisher=$_POST['txtPublisher'];
        $copyright_year=$_POST['txtCYear'];
        $status=$_POST['txtStatus'];

        $sql = ("UPDATE books SET isbn='$isbn', title='$title', author='$author', publisher='$publisher', copyright_year='$copyright_year', status='$status' WHERE bookID='$bookID'");

        $_SESSION['message'] = ( $db->exec($sql) ) ? 'Member updated successfully' : 'Something went wrong. Cannot update member';

    }
    catch(PDOException $e){
        $_SESSION['message'] = $e->getMessage();
    }

    $database->close();
}
else{
    $_SESSION['message'] = 'Fill up edit form first';
}

header('location: editbook.php');?>

И вот мое соединение с базой данных

<?php Class Connection{

private $server = "mysql:host=localhost;dbname=lms_db_main";
private $username = "root";
private $password = "";
private $options  = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,);
protected $dbConn;

public function open(){
    try{
        $this->dbConn = new PDO($this->server, $this->username, $this->password, $this->options);
        return $this->dbConn;
    }
    catch (PDOException $e){
        echo "There is some problem in connection: " . $e->getMessage();
    }

}

public function close(){
    $this->dbConn = null;
}}?>

И ее моя таблица вызывает данные в базе данных

 <tbody>
            <?php include_once('connection.php');

              $database = new Connection();
              $db = $database->open();
              try{  
                $sql = 'Select * from books';
                 foreach ($db->query($sql) as $rec){
              ?>
            <tr>
              <td><?php echo $rec['bookID']?></td>
              <td><?php echo $rec['isbn']?></td>
              <td><?php echo $rec['title']?></td>
              <td><?php echo $rec['author']?></td>
              <td><?php echo $rec['publisher']?></td>
              <td><?php echo $rec['copyright_year']?></td>
              <td><?php echo $rec['status']?></td>
              <td><a href="#edit_<?php echo $rec['bookID']; ?>" class="btn btn-success" data-toggle="modal"><span class="glyphicon glyphicon-edit"></span> Edit</a></td>
              <?php include('edit_modal.php'); ?>
            </tr>
            <?php
                }
              }
             catch(PDOException $e){
              echo "There is some problem in connection: " . $e->getMessage();
              }
              $database->close();
              ?>
          </tbody>
        </table>
        <br>

Что может быть моимотсутствует код или я что-то здесь упустил?

1 Ответ

0 голосов
/ 17 мая 2018

Ваш синтаксис для PDO неверен. Пожалуйста, попробуйте следовать приведенному ниже синтаксису для решения проблемы.

try{
      // data to be updated in id 1
        $title = 'Php Books';
        $author = 'Kuldeep';
        $id = 1;
      // query
        $sql = "UPDATE books SET title=?, author=? WHERE id=?";
        $query = $connection->prepare($sql);
        $query->execute(array($title,$author,$id));

catch(PDOException $e){
        $e->getMessage();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...