実現したいこと
入力フォームから送られてきたidとheightの値をtableのheightカラムにupdateしたいです。
該当するidレコードがなかったらレコードがない旨をメッセージとして出力したいです。
発生している問題・エラーメッセージ
tableにはid 1のレコードしか存在していませんが、
入力フォームにid 2や3などを入力しても
データを更新しましたと出力されてしまいます。
Countのwhereの部分が間違っているのでしょうか?
ちゃんと条件分岐するためにはどうすればよいでしょうか。
try {
$id = $_POST["id"];
$height = $_POST["height"];
if ($id === "" || $height === "" ) { echo "入力に不備があります。"; } elseif (strlen($height)<2 || strlen($height)>3 ||! ctype_digit($height) || substr($height,0,1) === "0") { echo "2〜3桁の正しい半角数字で入力してください。"; } else { $sql = "SELECT COUNT(id) FROM users WHERE id = 1"; $stmt = $dbh->prepare($sql); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($result > 0) { $sql = "UPDATE users SET height = :height WHERE id = :id"; $stmt = $dbh->prepare($sql); $params = array(":id" => $id, ":height" => $height); $stmt->execute($params); echo "データを更新しました。"; }else { echo "該当するレコードがありません。"; } }
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。