ToDo 削除をDBへ反映
#09 Todo更新情報をDBへ反映を削除してみよう (3)
http://dotinstall.com/lessons/todo_app_php_v2/9309
を参考に
Todo更新情報をDBへ反映 の削除情報をDBへ反映する
vim _ajax_delete_task.php
でファイルを開いて編集していく
まず
require_once('config.php'); require_once('functions.php');
で設定ファイルを読み込む
次に、functions.php で設定した
connectDb() でDB接続
次にsql を変数に格納
削除とはいっても
delete で実際に消すのではなく
フラグを変更することで、消したという判定にしている
$sql ="update tasks set type = 'delete',modified = now(), where id = :id";
modifiedは変更した時間なので
now() で現在時刻を指定
このsql を実行するため
$stmt = $dbh->prepare($sql); $stmt->execute(array(":id"=> (int)$_POST['id']));
今回は、POST での値のため
id の配列指定は
(int)$_POST['id']
としている
(int) にしているのは、整数でないとダメなので
整数型に強制変換している
この強制変換はキャストといって
java とか C とかでも使われる
ここまでできたら
chrome をつかって検証
もし削除で消して、リロードして消えていないのなら
DB接続関連がおかしいので
_ajax_delete_task.php
のソースを確認する
残念ながら developer tools で
このエラーは発見できなかった
調べた結果
$sql ="update tasks set type = 'delete',modified = now(), where id = :id";
と、
now() のあとに , がついていたのが原因
これを修正したら、正常に稼働した
DBの中身を確認するため
mysql -u root -p
でログインして
use dotinstall
でDB選択
elect * from tasks;
で確認すると
type が delete
となっているのが確認できる