2017-06-29 3 views
-2

特定のIDと一致する3つの異なるテーブルからすべての行を削除したいと思います。
3つのテーブルはすべて同じID:chat_idを使用します。PHPとMySQLを使用して3つの異なるテーブルから特定のIDを持つすべての行を削除

どのように3つの異なるテーブルからすべての行を削除しますか?chat_id = 1234

例:
$stmt = $mysqli->prepare('DELETE FROM table1, table2, table3 WHERE chat_id = ?');

私は、これは以下を参照ループ内であることを言及する必要があります。
私の完全なコード:

$stmt = $mysqli->prepare('SELECT chat_id FROM chat_id WHERE chat_expire < NOW()'); 
$stmt->execute(); 
$result = $stmt->get_result(); 
while ($row = $result->fetch_assoc()) { 
    $chatid[] = $row['chat_id']; 
} 
$stmt->close(); 

foreach($chatid as $id) { // Delete all old posts. 
$stmt = $mysqli->prepare('DELETE FROM chat_id, chat_msg, chat_nick WHERE chat_id = ?'); 
$stmt->bind_param('s', $id); 
$stmt->execute(); 
$stmt->close(); 
} 
+3

1つのDELETE文では実行できません。あなたは3つ必要です。これは基本的なSQLであり、PHPとは何の関係もありません。 SQLチュートリアルを見つけたり、書籍を購入することができます。 –

+1

[Mysql - 複数のテーブルから1つのクエリを削除](https://stackoverflow.com/questions/4839905/mysql-delete-from-multiple-tables-with-one-query) –

+0

@KenWhiteできます^ –

答えて

1

は常に同じ機能では、テーブル名を変更することにより、同じクエリを3回書きます。

+0

まだ質問がある場合は尋ねる:) – Takabrycheri

関連する問題