Reputation: 658
Can we delete set of triggers in mysql by passing an array to DROP TRIGGERS query from PHP?
$triggersToDelete = ['trigger1', 'trigger2', 'trigger6'];
$sql = 'DROP TRIGGER IF EXISTS $triggersToDelete';
Is this possible? Or any better way we can achieve this? Thanks in advance.
Upvotes: 1
Views: 366
Reputation: 125
Something like this would do the job.
<?php
$host = "localhost";
$user = "root";
$pass = "";
$database ="dbname";
$conn = mysqli_connect($host, $user, $pass, $database);
if (!$conn) {
die("Failed to connect to the database");
}
$triggersToDelete = ["trigger1", "trigger2", "trigger6"];
foreach ($triggersToDelete as $trigger) {
if (!mysqli_query($conn, "DROP TRIGGER IF EXISTS " . htmlspecialchars($trigger, ENT_QUOTES))) {
echo "Failed to delete trigger: " . $trigger . "<br>";
}
}
mysqli_close($conn);
Connect to the database, execute drop trigger for each trigger in array, close database connection
Upvotes: 1