こんにちは。私は現在書籍の在庫管理システムを作っている者です。バックエンドの部分に関してわからないことがありこの場をお借りして質問させていただきたいと思います。よろしくお願いします。
発生している問題
SQLのdelete文が機能しなく、選択した本のデータが削除できない。
実現したいこと
SQLのdelete文で削除ボタンを押したときに本のデータが削除されるようにしたい。
わからないこと
なぜ本のデータが削除されないのか、私としてはSQL文が間違っているとかその辺りだと思っているのですがそこだけに固執している可能性があり、皆さんの力をお借りしたい。
実際に行ったこと
idカラムをバインドさせるのではなくtitleカラムをバインドさせることをやってみたが変化なし。
参考にしたWEBページ
https://www.sql-reference.com/delete/delete.html
https://style.potepan.com/articles/15564.html
http://www.mitene.or.jp/~rnk/TIPS_ORCL_DELETE.htm>
開発環境
Mac OS Monterey 12.3.1
PHP version 7.4.16
コード
<?php // db_connect.phpの読み込み require_once("db_connect.php"); // function.phpの読み込み require_once("function.php"); // ログインしていなければ、login.phpにリダイレクト check_user_logged_in(); // URLの?以降で渡されるIDをキャッチ $id = $_GET['id']; // もし、$idが空であったらmain.phpにリダイレクト // 不正なアクセス対策 if (empty($id)) { header("Location: main.php"); exit; } // PDOのインスタンスを取得 $pdo = db_connect(); if (!empty($_POST)) { // idを格納 $id = $_POST["id"]; try { // SQL文の準備 $sql = "delete from 'books' where 'books'.'id' = ':id'"; // プリペアドステートメントの作成 $stmt = $pdo->prepare($sql); // idのバインド $stmt->bindParam(':id', $id); // 実行 $stmt->execute(); // main.phpにリダイレクト // header("Location: main.php"); exit; } catch (PDOException $e) { // エラーメッセージの出力 echo 'Error: ' . $e->getMessage(); // 終了 die(); } } ?> <!doctype html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="../CSS/delete_books.css"> <title>削除</title> </head> <body> <h1>削除画面</h1> <div>削除しました</div><br> <a href="main.php">在庫一覧画面に戻る</a> </body> </html>
回答2件
あなたの回答
tips
プレビュー