insert,updateを使用してもデータベースを変更できない
Q&A
Closed
解決したいこと
mampを用いたローカル環境で日報登録システムを作成中です。
データベースに登録が無ければ、モーダルで入力した出勤時間、退勤時間、休憩時間、
業務内容をデータベースに登録。
データベースに登録があれば、モーダルで入力した出勤時間、退勤時間、休憩時間、
業務内容をデータベースに更新する動作を行いたいです。
しかし現状、データベースへのinsert,updateが行われません。
グーグルデベロッパーツールのコンソールに"on_content_end〜pattern.id=undefined"と
表示されることが気になりますが、原因と対処方法の特定ができません。
ご教授いただけると幸いです。宜しくお願いいたします。
発生している問題・エラー
ログインすると、今月の業務一覧と日報登録ができるモーダルが表示されます。
データベースには本日の業務情報が既に登録されていますので、これから情報を更新する所です。
打刻をし、業務内容を登録。データベースが更新され、今月の業務一覧も更新されるはずです...
該当するソースコード
php側
$pdo = connect_db();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//日報登録情報
//入力値をPOSTパラメータから取得
$modal_start_time = $_POST['modal_start_time'];
$modal_finish_time = $_POST['modal_finish_time'];
$modal_rest_time = $_POST['modal_rest_time'];
$modal_comment = $_POST['modal_comment'];
//対象日のデータがあるかチェクする
$sql = "SELECT id FROM work WHERE user_id = :user_id AND date = :date LIMIT 1";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':user_id', (int)$session_user['id'], PDO::PARAM_INT);
$stmt->bindValue(':date', date('Y-m-d'), PDO::PARAM_STR);
$stmt->execute();
$user = $stmt->fetch();
if($work) {
//対象日のデータがあればUPDATE
$sql = "UPDATE work SET start_time = :start_time, finish_time = :finish_time, rest_time = :rest_time, comment = :comment WHERE
id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':id', (int)$work['id'], PDO::PARAM_INT);
$stmt->bindValue(':start_time', $modal_start_time, PDO::PARAM_STR);
$stmt->bindValue(':finish_time', $modal_finish_time, PDO::PARAM_STR);
$stmt->bindValue(':rest_time', $modal_rest_time, PDO::PARAM_STR);
$stmt->bindValue(':comment', $modal_comment, PDO::PARAM_STR);
$stmt->execute();
} else {
//対象日のデータが無ければINSERT
$sql = "INSERT INTO work (user_id, date, start_time, finish_time, rest_time, comment) VALUES (:user_id, :date, :start_time, :finish_time, :rest_time, :comment)";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':user_id', (int)$session_user['id'], PDO::PARAM_INT);
$stmt->bindValue(':date', date('Y-m-d'), PDO::PARAM_STR);
$stmt->bindValue(':start_time', $modal_start_time, PDO::PARAM_STR);
$stmt->bindValue(':finish_time', $modal_finish_time, PDO::PARAM_STR);
$stmt->bindValue(':rest_time', $modal_rest_time, PDO::PARAM_STR);
$stmt->bindValue(':comment', $modal_comment, PDO::PARAM_STR);
$stmt->execute();
}
}
### 自分で試したこと
・スペルミスがないかの確認
0