0

データベース内の複数のテーブルからデータを削除する方法を見つけようとしています。背景を説明するために、名前や名前などの基本情報を保持するユーザーテーブルがあります。次に、パスワードとユーザー名を保持するログインテーブルがあります。両方のテーブルの情報を含むユーザーリストを表示できる管理ページを作成しています。その部分は正常に機能します。私の問題は、削除スクリプトを作成しようとしていることです。別々のクエリを作成しようとしましたが、どこにも到達していません。誰かが私にいくつかの方向性を与えることができますか?または、少なくともこれについて具体的に読むことができる場所はどこですか?

// Get IDs
$lid = $_POST['lid'];
$uid = $_POST['uid'];

// Delete the product from the database
require_once('database.php');

$query = "DELETE user,login FROM user INNER JOIN login ON user.uid = '$uid' AND login.lid= '$lid'";
 $db->exec($query);
4

2 に答える 2

2

外部キーを追加してから、列定義でON DELETE CASCADEを使用します。これにより、親行が削除されたときに子行が削除されます。

于 2012-04-26T23:45:41.223 に答える
0

単一のDMLステートメントでこれを実行できるかどうかは、データベース(および場合によってはどのような制約が設定されているか)によって異なります。ただし、より簡単なオプションは、通常、2つのDMLステートメントを使用してこのようなことを行うことです。

$query = "DELETE FROM user WHERE user.uid = '$uid'";
$db->exec($query);
$query = "DELETE FROM login WHERE login.lid= '$lid'";
$db->exec($query);
于 2012-04-26T23:46:11.230 に答える