Skip to main content

Data Validation with MySQL Triggers

One of the applications that I get to play with on a regular basis is a PHP, Javascript AJAX environment that acts as a frontend for a MySQL database. I wanted to add range constraints to some of the fields in order to reduce typo's.

I created before triggers with the following basic skeleton for each table that I wanted to add the range constraint to.

if NEW.columnname > theupperrange then
SELECT `**columnname is out of range**` from thetable into @str_val;
end if;

This will cause the insert to fail with the follow error message
Unknown column `**columnname is out of range**`

because of the nature of the application (if an error occurs in MySQL the PHP returns the error message) it then becomes the JavaScript's XMLHttprequest.responseText. so on the javascript side of the application i look for the Unknown column like this

//req is the name of the XMLHttpRequest object i create to handle interaction between
//the javascript and PHP.

if(req.responseTest.indexOf("Unknown column"))
{
msg = req.responseText
arr_msg = msg.split("**")
themsg = arr_msg[1]
alert(themsg)
//window1 is where data is entered, I know it's a real meaningful name:)
window1.focus()
}

else
{
regular application stuff
}

The idea of how to write the trigger was not original with me. I got it from http://www.brokenbuild.com/blog/category/mysql/ , who I believe said he got it from another source.

Comments

Popular posts from this blog

Carmel Marathon 2020 Weeks 2 & 3

Training for the Carmel Marathon on April 4th, 2020 in Carmel Indiana Goal: 2:51 Week 2 Runs: 8 Weekly Milage: 72 Cumulative Milage: 139 Workouts / Long Run: 17 with 8 at Marathon Pace Performance Management Chart for the week showing my running fitness progression from the beginning of the cycle through the current week. The main focus this week was just building my milage a little from last week, about 5 more miles, while being ready for my first MP workout. I am pretty focused right now and I struggled some last week with wanting to do more that the plan called for. I really wanted to add in a threshold workout. Marathon training is about discipline and long term thinking though. I could have added in some threshold miles and it probably would have been ok but doing the plan the way the plan is written will get me where I want to go and will keep me feeling on track and help me from wavering in the other direction as well. I'm doing the plan, period. I ran my fi...

Running Goals or Running Goal; What is it That I Want?

The other day I got all caught up in setting running goals for myself for the rest of the year. After the goals were set, I found myself starting to worry about how I was going to reach them. Wondering if there would be time to sufficiently prepare for them all. My goals were to run a 5k in under 20 minutes, to run a half marathon in 1:25 minutes and qualify for and run in the Boston marathon in 2014. At first, I thought that setting and meeting these goals would make me a more serious runner. In fact, I thought that to be the "serious" runner I want to be that I needed these goals. However, while I was running the other morning I realized that first of all, I was thinking about how to shift my training to meet my 5k goal. Then I began thinking about the right approach to a 1:25 half while training to qualify for Boston in a full marathon a month later. That is when I realized that the ancillary goals were starting to consume my focus and quite possibly i...

The Gosh Darn Tuesday Morning 15-Miler

What can you say about a 15-mile Tuesday morning run? I can say a lot. I’ve had a lot of time to think about what I can say about a 15-mile Tuesday morning run on more 15-mile Tuesday Morning runs than I can count. You see, they are a main stay of the marathon training plan that I use. That plan being Pete Pfitzinger’s Advanced Marathoning 18 week 70-85 miles per week plan. The first thing I can say about the Tuesday morning 15-mile run is that it’s not a long run. Pete clearly defines long runs as starting at 16 miles. So, the 15-miler that begins so many Tuesdays of my life is not a long run. I mean, who ever heard of doing a “long run” on a Tuesday morning. That would just be insane. Being that it’s not a long run I can’t do all of the things that I do around a long run. I can’t obsess over the weather for the 15-miler, I can’t eat extra carbs in preparation for the 15-miler, I can’t expect my family to give me deference and make accommodations for me ...