Devika V
Devika V

Reputation: 658

Query to DROP mysql triggers dynamically

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

Answers (1)

Aleksa Nikolic
Aleksa Nikolic

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

Related Questions