[PHP] Create MySQL Trigger in PHP
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
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
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);
}
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
Post a Comment