[PHP] Create MySQL Trigger in PHP

phpmysql
IntroductionWhen we want to execute a specific task at a scheduled time, MySQL provides special functionality called triggers. Triggers are basically named blocks of code that are executed, or fired, automatically when a specified type of SQL statement is executed. Triggers can be executed before after an INSERT, UPDATE or DELETE statement is executed on the table.

Syntax



CREATE TRIGGER trigger_Name
{Before|After}{Insert|Update|Delete}ON table_name
For  EACH  ROW
sql_block

For ExampleUsing the following query, you can better understand what a trigger is and how to use a trigger to execute a specific task at a scheduled time.

QueryThe following query creates a  trigger named "MysqlTrigger", this trigger is associated with the name emp table and is fired before an update. When you try to update a name with lower case, it will automatically convert it to UPPER case .
"CREATE TRIGGER MysqlTrigger BEFORE UPDATE ON "emp" FOR EACH ROW SET NEW.name=UPPER(NEW.name);"

The following is an Update statement that fires the trigger:

UPDATE emp SET name='ram' where id=2


The following is a select statement that shows the new row:

Select * from emp where id=2


Example of Creating a trigger in PHP

In this example a simple "CREATE TRIGGER MysqlTrigger BEFORE UPDATE ON emp FOR EACH ROW SET NEW.name=UPPER(NEW.name);" query creates a trigger that will be useful when for updating an employee's name based on their id (in other words emp id). Suppose you write the query "UPDATE emp SET name='ram' where id=2", when this query fires, the name corresponding to id 2 is updated. Suppose that before the update, the name corresponding to id 2 is "vinod", then this query changes "vinod" to "ram". In other words, the trigger that was previously created by you, changes "ram" to "RAM".


 
<?
php
$con=mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("sharad", $con);
print "<h2>MySQL: Simple Select statement</h2>";
$result = mysql_query("select * from emp");
echo "<table border='1'>
<tr>
<th>EmpId</th>
<th>Firstname</th>
<th>Salary</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['salary'] . "</td>";
echo "</tr>";
}
echo "</table>";
print "<h2>CREATE MySQL Trigger In PHP</h2>";
$sql = "CREATE TRIGGER MysqlTrigger BEFORE UPDATE ON emp FOR EACH ROW SET NEW.name=UPPER(NEW.name);";
mysql_query($sql,$con);
print "<h2>MySQL: Update Statement</h2>";
$qry = mysql_query("UPDATE emp SET name='ram' where id=2");
echo "Table has been updated.";
mysql_query($qry,$con);
print "<h2>MySQL: Effect of Trigger</h2>";
$result = mysql_query("select * from emp");
echo "<table border='1'>
<tr>
<th>EmpId</th>
<th>Firstname</th>
<th>Salary</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['salary'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>Note: You can not create a trigger on "system tables".

Following one also better example . make trigger before insert qurey 


$con=mysql_connect("localhost", "root", "");
$connect=mysql_select_db("ci",$con);
if(isset($connect))
{
    echo 'successfully connected';
   
    $sql="CREATE TRIGGER captial BEFORE INSERT ON details FOR EACH ROW SET NEW.lastname=upper(NEW.lastname)";
    mysql_query($sql);
   
   
    $sql1="INSERT INTO details(lastname) VALUES('desai')";
    mysql_query($sql1);
       
}

Comments

Popular posts from this blog

How can I debug PHP cURL sessions?

Free icons

Where is the security section of google analytics? “Security Issues” section.