6kun
@6kun (初心者)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【初心者】プライマリーキーを指定して、該当のデータを削除したい

Q&A

Closed

解決したいこと

PHPとMySQLで会員退会機能を作っているのですが、エラーがなかなか解消できない為
ご助力いただきたいです。
メールアドレス・パスワードを入力後、決定ボタン押下後
該当のプライマリーキーを指定してデータを削除するコードを書きたいです。

テーブル構成
id(主)/ name/ mail/ password

発生している問題・エラー

以下、入力し決定ボタン押下後のエラー
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':id' at line 1 in C:\xampp\htdocs\掲示板アプリ\remove.php:13 Stack trace: #0 C:\xampp\htdocs\掲示板アプリ\remove.php(13): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\掲示板アプリ\remove.php on line 13

該当するソースコード(PHP/一部SQL)

<?php
//退会処理
$pdo=new PDO('mysql:host=localhost;dbname=users;charset=utf8','admin','password');
if(isset($_POST["OK"])){
    

$dbMail=$pdo->prepare('select mail from product');
$dbPass=$pdo->prepare('select password from product');
$sql=$pdo->prepare('delete from product where id=?');

$dbMail->execute();
$dbPass->execute();
if ([$_REQUEST["removeMail"]==$dbMail && $_REQUEST["removePass"]==$dbPass]){
   $sql->execute();
   echo"退会処理が完了しました。ご利用ありがとうございました。";
}else{
   echo"登録されていない会員情報です。入力内容をご確認ください。";
}
}
?>

自分で試したこと

・更新後のリロード
・13,14行をもともと1行で書いていた為、分割記載

初心者かつ初投稿のため、情報に不備があったらすみません。
その際はご指摘いただけると幸いです。

0

1Answer

$sql=$pdo->prepare('delete from product where id=?');

DELET文にidを指定するためのパラメータがありますが、それを設定している箇所が見受けられません。それによるエラーだと思います。
パラメータを指定する方法はマニュアルを確認してください。

1Like

Your answer might help someone💌