Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/devmorgan/devmorgan.com/blog/wp-settings.php on line 18

Strict Standards: Declaration of Walker_Comment::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/devmorgan/devmorgan.com/blog/wp-includes/comment-template.php on line 0

Strict Standards: Declaration of Walker_Comment::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/devmorgan/devmorgan.com/blog/wp-includes/comment-template.php on line 0

Strict Standards: Declaration of Walker_Comment::start_el() should be compatible with Walker::start_el(&$output) in /home/devmorgan/devmorgan.com/blog/wp-includes/comment-template.php on line 0

Strict Standards: Declaration of Walker_Comment::end_el() should be compatible with Walker::end_el(&$output) in /home/devmorgan/devmorgan.com/blog/wp-includes/comment-template.php on line 0
devmorgan.com » DyDL - Part 3: Dynamic Binding with mysqli in PHP
Home > coding, data, technology > DyDL - Part 3: Dynamic Binding with mysqli in PHP

DyDL - Part 3: Dynamic Binding with mysqli in PHP

March 27th, 2009

del.icio.us Reddit Slashdot Digg Facebook StumbleUpon

Something bad happened a few weeks ago. My desktop died. But, more about here is the surprising part:

I haven’t replaced it yet.

Yep. Dave Morgan, tooth hyperconnected geek extraordinaire does not have a permanent presence online. Not gunna lie, website like this at first it was scary. I had my addiction, and I thought for sure my life would be less fulfilling if I lacked my technology.

I was wrong. Sort of. I adapted.

The truth is, my desktop really didn’t serve much of a purpose. I called it my “social box”. It was a machine that was constantly on, was always running Pidgin, twhirl and my e-mail clients. I don’t need my desktop to get my work done.

Of course, I have seen use of my iPod touch go up at least five-fold. The touch has become my new “social box”. If I am anywhere near a wifi point I am constantly checking twitter and my e-mail. My laptop has become the new home of the instant messaging, but I occasionally use the touch for that as well.

So, am I less connected? No. Sure, my day to day life has changed a little bit. I lack the “always on” connection that my desktop provided, but at the same time I now have developed a deeper mobility in my tech life. I have adapted such that I no longer need to be sitting at my desk to do any work. Period. Most of my “play” tasks get accomplished on my iPod touch, and serious work will be done on my laptop.

I don’t think I’ll be in a rush to replace my desktop. Eventually I will, but, for now I don’t mind. When I do replace it, I will likely give it a new purpose (I have been toying with the idea of using it more like a media PC). The mobility is refreshing. I am disconnected physically from the wall, but I don’t think I’ll ever be disconnected from the internet.

Besides, now I can claim I am doing my part to save the planet by consuming less energy. Yep. I’ve gone green.
So, illness cure I’ve been gone for a little while. In fact, stomach too long.

I’ve had a lot going on in my life, and I find it harder and harder to get myself to sit down and write. My appologies to anyone who reads this blog. However, I have something to show for it.

The past several weeks, my roommates and I have been putting a lot of our effort into building our new bar.

The Bar

Kevin is quite the carpenter, and did much of the framing and much of the bar. Justin and I were able to help out also, particularly in the finishing work. Overall the bar’s dimensions are pretty big. It is an L shape, and comes out from the wall about six feet, and then tails off for another six. We designed the bar from scratch and built it as such. There is a draft beer system, consisting of a refrigerator conversion. We can store a quarter keg of beer on tap. We hope to finish the entire basement (where the bar resides) and fit it with a projection system. Should be great for the rest of football season!

PS. I have a new comic idea, should have one out soon.
So, illness cure I’ve been gone for a little while. In fact, stomach too long.

I’ve had a lot going on in my life, and I find it harder and harder to get myself to sit down and write. My appologies to anyone who reads this blog. However, I have something to show for it.

The past several weeks, my roommates and I have been putting a lot of our effort into building our new bar.

The Bar

Kevin is quite the carpenter, and did much of the framing and much of the bar. Justin and I were able to help out also, particularly in the finishing work. Overall the bar’s dimensions are pretty big. It is an L shape, and comes out from the wall about six feet, and then tails off for another six. We designed the bar from scratch and built it as such. There is a draft beer system, consisting of a refrigerator conversion. We can store a quarter keg of beer on tap. We hope to finish the entire basement (where the bar resides) and fit it with a projection system. Should be great for the rest of football season!

PS. I have a new comic idea, should have one out soon.
Several months ago, search there was an XKCD comic called Morning Routine. It is the original inspiration for this comic. I started to think about when I end up sleeping with my laptop in bed. It’s when I’m alone, and usually only when I am feeling pretty lonely.

It’s kind of a painful reminder, isn’t it?
So, illness cure I’ve been gone for a little while. In fact, stomach too long.

I’ve had a lot going on in my life, and I find it harder and harder to get myself to sit down and write. My appologies to anyone who reads this blog. However, I have something to show for it.

The past several weeks, my roommates and I have been putting a lot of our effort into building our new bar.

The Bar

Kevin is quite the carpenter, and did much of the framing and much of the bar. Justin and I were able to help out also, particularly in the finishing work. Overall the bar’s dimensions are pretty big. It is an L shape, and comes out from the wall about six feet, and then tails off for another six. We designed the bar from scratch and built it as such. There is a draft beer system, consisting of a refrigerator conversion. We can store a quarter keg of beer on tap. We hope to finish the entire basement (where the bar resides) and fit it with a projection system. Should be great for the rest of football season!

PS. I have a new comic idea, should have one out soon.
Several months ago, search there was an XKCD comic called Morning Routine. It is the original inspiration for this comic. I started to think about when I end up sleeping with my laptop in bed. It’s when I’m alone, and usually only when I am feeling pretty lonely.

It’s kind of a painful reminder, isn’t it?
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
So, illness cure I’ve been gone for a little while. In fact, stomach too long.

I’ve had a lot going on in my life, and I find it harder and harder to get myself to sit down and write. My appologies to anyone who reads this blog. However, I have something to show for it.

The past several weeks, my roommates and I have been putting a lot of our effort into building our new bar.

The Bar

Kevin is quite the carpenter, and did much of the framing and much of the bar. Justin and I were able to help out also, particularly in the finishing work. Overall the bar’s dimensions are pretty big. It is an L shape, and comes out from the wall about six feet, and then tails off for another six. We designed the bar from scratch and built it as such. There is a draft beer system, consisting of a refrigerator conversion. We can store a quarter keg of beer on tap. We hope to finish the entire basement (where the bar resides) and fit it with a projection system. Should be great for the rest of football season!

PS. I have a new comic idea, should have one out soon.
Several months ago, search there was an XKCD comic called Morning Routine. It is the original inspiration for this comic. I started to think about when I end up sleeping with my laptop in bed. It’s when I’m alone, and usually only when I am feeling pretty lonely.

It’s kind of a painful reminder, isn’t it?
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
I find that there is two kinds of stress. Stress that has a known end, price
and stress that has an unknown end. A lot of people will talk about ways to deal with stress, ailment
but I really believe that you must understand the type of stress that you are under before you can beat it.

Known End Stress
So, illness cure I’ve been gone for a little while. In fact, stomach too long.

I’ve had a lot going on in my life, and I find it harder and harder to get myself to sit down and write. My appologies to anyone who reads this blog. However, I have something to show for it.

The past several weeks, my roommates and I have been putting a lot of our effort into building our new bar.

The Bar

Kevin is quite the carpenter, and did much of the framing and much of the bar. Justin and I were able to help out also, particularly in the finishing work. Overall the bar’s dimensions are pretty big. It is an L shape, and comes out from the wall about six feet, and then tails off for another six. We designed the bar from scratch and built it as such. There is a draft beer system, consisting of a refrigerator conversion. We can store a quarter keg of beer on tap. We hope to finish the entire basement (where the bar resides) and fit it with a projection system. Should be great for the rest of football season!

PS. I have a new comic idea, should have one out soon.
Several months ago, search there was an XKCD comic called Morning Routine. It is the original inspiration for this comic. I started to think about when I end up sleeping with my laptop in bed. It’s when I’m alone, and usually only when I am feeling pretty lonely.

It’s kind of a painful reminder, isn’t it?
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
I find that there is two kinds of stress. Stress that has a known end, price
and stress that has an unknown end. A lot of people will talk about ways to deal with stress, ailment
but I really believe that you must understand the type of stress that you are under before you can beat it.

Known End Stress
Another call from the parents, website like this wanting to get something working correctly on their computer.

You’d think we’d be past this… but we aren’t. That’s the problem with technology today. We are SO close to having things “just work”. In fact, pilule I’ll admit, mind Apple is closer. The problem is, we aren’t there yet, even for the mac.

My parents are smart people. They don’t understand computers, but they are smart people. In fact, my father is one of the most intelligent people I know. He has a mechanical mind like none other. Once we start talking how to use the computer though, things get increasingly difficult. I wish I didn’t have such a short fuse, but I get frustrated easily with technical questions. Sorry guys. The problem still remains, when things get plugged in, and installed… they don’t always just work.

The reality is, will we ever get there? Sure, things are more and more user friendly, but sometimes the learning curve is just going to be difficult. Trying to explain how to get video conferencing is hard when the person who is being told is miles away and doesn’t understand why the computer needs to reboot to recognize the drivers, or where the unmute settings are.

This isn’t meant to be a rant - wait - I guess it is, but as software developers we always need to strive to make things “just work”. A lot of times, this isn’t the focus. Sometimes hardware is the limitation. Sometimes software is.  Sometimes the focus is quick development, and not quick learning curve. Sometimes we just specify a “requirement” on the system to avoid something that will cause the program to break. Although, every day we get closer!

What I worry about is that more and more, I need to explain to many of my students that things are “magic” and it just works. This is great - but it’s also scary. We need to be able to develop things that “just work”, but at the same time have a very clear and logical paradigm that is associated with them, so they can be understood. I don’t know how to solve this problem. Hell, I can barely think of examples. But, it’s been a month since I’ve written and I figured I’d say something.

Perhaps a few more days in the oven and this thought will be a little more cooked.
So, illness cure I’ve been gone for a little while. In fact, stomach too long.

I’ve had a lot going on in my life, and I find it harder and harder to get myself to sit down and write. My appologies to anyone who reads this blog. However, I have something to show for it.

The past several weeks, my roommates and I have been putting a lot of our effort into building our new bar.

The Bar

Kevin is quite the carpenter, and did much of the framing and much of the bar. Justin and I were able to help out also, particularly in the finishing work. Overall the bar’s dimensions are pretty big. It is an L shape, and comes out from the wall about six feet, and then tails off for another six. We designed the bar from scratch and built it as such. There is a draft beer system, consisting of a refrigerator conversion. We can store a quarter keg of beer on tap. We hope to finish the entire basement (where the bar resides) and fit it with a projection system. Should be great for the rest of football season!

PS. I have a new comic idea, should have one out soon.
Several months ago, search there was an XKCD comic called Morning Routine. It is the original inspiration for this comic. I started to think about when I end up sleeping with my laptop in bed. It’s when I’m alone, and usually only when I am feeling pretty lonely.

It’s kind of a painful reminder, isn’t it?
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
I find that there is two kinds of stress. Stress that has a known end, price
and stress that has an unknown end. A lot of people will talk about ways to deal with stress, ailment
but I really believe that you must understand the type of stress that you are under before you can beat it.

Known End Stress
Another call from the parents, website like this wanting to get something working correctly on their computer.

You’d think we’d be past this… but we aren’t. That’s the problem with technology today. We are SO close to having things “just work”. In fact, pilule I’ll admit, mind Apple is closer. The problem is, we aren’t there yet, even for the mac.

My parents are smart people. They don’t understand computers, but they are smart people. In fact, my father is one of the most intelligent people I know. He has a mechanical mind like none other. Once we start talking how to use the computer though, things get increasingly difficult. I wish I didn’t have such a short fuse, but I get frustrated easily with technical questions. Sorry guys. The problem still remains, when things get plugged in, and installed… they don’t always just work.

The reality is, will we ever get there? Sure, things are more and more user friendly, but sometimes the learning curve is just going to be difficult. Trying to explain how to get video conferencing is hard when the person who is being told is miles away and doesn’t understand why the computer needs to reboot to recognize the drivers, or where the unmute settings are.

This isn’t meant to be a rant - wait - I guess it is, but as software developers we always need to strive to make things “just work”. A lot of times, this isn’t the focus. Sometimes hardware is the limitation. Sometimes software is.  Sometimes the focus is quick development, and not quick learning curve. Sometimes we just specify a “requirement” on the system to avoid something that will cause the program to break. Although, every day we get closer!

What I worry about is that more and more, I need to explain to many of my students that things are “magic” and it just works. This is great - but it’s also scary. We need to be able to develop things that “just work”, but at the same time have a very clear and logical paradigm that is associated with them, so they can be understood. I don’t know how to solve this problem. Hell, I can barely think of examples. But, it’s been a month since I’ve written and I figured I’d say something.

Perhaps a few more days in the oven and this thought will be a little more cooked.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, nurse for that, treatment my apologies.

So. A few big things have happened in my life, doctor some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
So, illness cure I’ve been gone for a little while. In fact, stomach too long.

I’ve had a lot going on in my life, and I find it harder and harder to get myself to sit down and write. My appologies to anyone who reads this blog. However, I have something to show for it.

The past several weeks, my roommates and I have been putting a lot of our effort into building our new bar.

The Bar

Kevin is quite the carpenter, and did much of the framing and much of the bar. Justin and I were able to help out also, particularly in the finishing work. Overall the bar’s dimensions are pretty big. It is an L shape, and comes out from the wall about six feet, and then tails off for another six. We designed the bar from scratch and built it as such. There is a draft beer system, consisting of a refrigerator conversion. We can store a quarter keg of beer on tap. We hope to finish the entire basement (where the bar resides) and fit it with a projection system. Should be great for the rest of football season!

PS. I have a new comic idea, should have one out soon.
Several months ago, search there was an XKCD comic called Morning Routine. It is the original inspiration for this comic. I started to think about when I end up sleeping with my laptop in bed. It’s when I’m alone, and usually only when I am feeling pretty lonely.

It’s kind of a painful reminder, isn’t it?
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
I find that there is two kinds of stress. Stress that has a known end, price
and stress that has an unknown end. A lot of people will talk about ways to deal with stress, ailment
but I really believe that you must understand the type of stress that you are under before you can beat it.

Known End Stress
Another call from the parents, website like this wanting to get something working correctly on their computer.

You’d think we’d be past this… but we aren’t. That’s the problem with technology today. We are SO close to having things “just work”. In fact, pilule I’ll admit, mind Apple is closer. The problem is, we aren’t there yet, even for the mac.

My parents are smart people. They don’t understand computers, but they are smart people. In fact, my father is one of the most intelligent people I know. He has a mechanical mind like none other. Once we start talking how to use the computer though, things get increasingly difficult. I wish I didn’t have such a short fuse, but I get frustrated easily with technical questions. Sorry guys. The problem still remains, when things get plugged in, and installed… they don’t always just work.

The reality is, will we ever get there? Sure, things are more and more user friendly, but sometimes the learning curve is just going to be difficult. Trying to explain how to get video conferencing is hard when the person who is being told is miles away and doesn’t understand why the computer needs to reboot to recognize the drivers, or where the unmute settings are.

This isn’t meant to be a rant - wait - I guess it is, but as software developers we always need to strive to make things “just work”. A lot of times, this isn’t the focus. Sometimes hardware is the limitation. Sometimes software is.  Sometimes the focus is quick development, and not quick learning curve. Sometimes we just specify a “requirement” on the system to avoid something that will cause the program to break. Although, every day we get closer!

What I worry about is that more and more, I need to explain to many of my students that things are “magic” and it just works. This is great - but it’s also scary. We need to be able to develop things that “just work”, but at the same time have a very clear and logical paradigm that is associated with them, so they can be understood. I don’t know how to solve this problem. Hell, I can barely think of examples. But, it’s been a month since I’ve written and I figured I’d say something.

Perhaps a few more days in the oven and this thought will be a little more cooked.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, nurse for that, treatment my apologies.

So. A few big things have happened in my life, doctor some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, see for that, decease my apologies.

So. A few big things have happened in my life, sanitary some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on
So, illness cure I’ve been gone for a little while. In fact, stomach too long.

I’ve had a lot going on in my life, and I find it harder and harder to get myself to sit down and write. My appologies to anyone who reads this blog. However, I have something to show for it.

The past several weeks, my roommates and I have been putting a lot of our effort into building our new bar.

The Bar

Kevin is quite the carpenter, and did much of the framing and much of the bar. Justin and I were able to help out also, particularly in the finishing work. Overall the bar’s dimensions are pretty big. It is an L shape, and comes out from the wall about six feet, and then tails off for another six. We designed the bar from scratch and built it as such. There is a draft beer system, consisting of a refrigerator conversion. We can store a quarter keg of beer on tap. We hope to finish the entire basement (where the bar resides) and fit it with a projection system. Should be great for the rest of football season!

PS. I have a new comic idea, should have one out soon.
Several months ago, search there was an XKCD comic called Morning Routine. It is the original inspiration for this comic. I started to think about when I end up sleeping with my laptop in bed. It’s when I’m alone, and usually only when I am feeling pretty lonely.

It’s kind of a painful reminder, isn’t it?
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
I find that there is two kinds of stress. Stress that has a known end, price
and stress that has an unknown end. A lot of people will talk about ways to deal with stress, ailment
but I really believe that you must understand the type of stress that you are under before you can beat it.

Known End Stress
Another call from the parents, website like this wanting to get something working correctly on their computer.

You’d think we’d be past this… but we aren’t. That’s the problem with technology today. We are SO close to having things “just work”. In fact, pilule I’ll admit, mind Apple is closer. The problem is, we aren’t there yet, even for the mac.

My parents are smart people. They don’t understand computers, but they are smart people. In fact, my father is one of the most intelligent people I know. He has a mechanical mind like none other. Once we start talking how to use the computer though, things get increasingly difficult. I wish I didn’t have such a short fuse, but I get frustrated easily with technical questions. Sorry guys. The problem still remains, when things get plugged in, and installed… they don’t always just work.

The reality is, will we ever get there? Sure, things are more and more user friendly, but sometimes the learning curve is just going to be difficult. Trying to explain how to get video conferencing is hard when the person who is being told is miles away and doesn’t understand why the computer needs to reboot to recognize the drivers, or where the unmute settings are.

This isn’t meant to be a rant - wait - I guess it is, but as software developers we always need to strive to make things “just work”. A lot of times, this isn’t the focus. Sometimes hardware is the limitation. Sometimes software is.  Sometimes the focus is quick development, and not quick learning curve. Sometimes we just specify a “requirement” on the system to avoid something that will cause the program to break. Although, every day we get closer!

What I worry about is that more and more, I need to explain to many of my students that things are “magic” and it just works. This is great - but it’s also scary. We need to be able to develop things that “just work”, but at the same time have a very clear and logical paradigm that is associated with them, so they can be understood. I don’t know how to solve this problem. Hell, I can barely think of examples. But, it’s been a month since I’ve written and I figured I’d say something.

Perhaps a few more days in the oven and this thought will be a little more cooked.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, nurse for that, treatment my apologies.

So. A few big things have happened in my life, doctor some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, see for that, decease my apologies.

So. A few big things have happened in my life, sanitary some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, adiposity for that, ailment my apologies.

So. A few big things have happened in my life, some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
So, illness cure I’ve been gone for a little while. In fact, stomach too long.

I’ve had a lot going on in my life, and I find it harder and harder to get myself to sit down and write. My appologies to anyone who reads this blog. However, I have something to show for it.

The past several weeks, my roommates and I have been putting a lot of our effort into building our new bar.

The Bar

Kevin is quite the carpenter, and did much of the framing and much of the bar. Justin and I were able to help out also, particularly in the finishing work. Overall the bar’s dimensions are pretty big. It is an L shape, and comes out from the wall about six feet, and then tails off for another six. We designed the bar from scratch and built it as such. There is a draft beer system, consisting of a refrigerator conversion. We can store a quarter keg of beer on tap. We hope to finish the entire basement (where the bar resides) and fit it with a projection system. Should be great for the rest of football season!

PS. I have a new comic idea, should have one out soon.
Several months ago, search there was an XKCD comic called Morning Routine. It is the original inspiration for this comic. I started to think about when I end up sleeping with my laptop in bed. It’s when I’m alone, and usually only when I am feeling pretty lonely.

It’s kind of a painful reminder, isn’t it?
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
Sure. I didn’t get this post up before Christmas. Big deal =P.

Happy Holidays to everyone. Right now I am spending some time in the Philadelphia airport waiting to catch my flight to head to Cincinnati. After that I’ll be heading to Boston for new years. I got a busy week ahead of me.

The point of this post is simple, adiposity last night I was asked to say grace at dinner for my family. What I said was simple: Lets be thankful for this past year. I did not mention any God, I did not mention any faith. I simply asked my family to reflect back on the past year and be thankful and proud of everything.

My family has two new members this year, one comes in the form of a canine that my dad loves to death, and the other is my nephew Cole. We have a lot to be happy about over the past year, and a lot going for us. I just want to remind everyone to take some time during this holiday season to think about the year and be thankful for what has gone well.

Merry Christmas, Happy New Year.
I find that there is two kinds of stress. Stress that has a known end, price
and stress that has an unknown end. A lot of people will talk about ways to deal with stress, ailment
but I really believe that you must understand the type of stress that you are under before you can beat it.

Known End Stress
Another call from the parents, website like this wanting to get something working correctly on their computer.

You’d think we’d be past this… but we aren’t. That’s the problem with technology today. We are SO close to having things “just work”. In fact, pilule I’ll admit, mind Apple is closer. The problem is, we aren’t there yet, even for the mac.

My parents are smart people. They don’t understand computers, but they are smart people. In fact, my father is one of the most intelligent people I know. He has a mechanical mind like none other. Once we start talking how to use the computer though, things get increasingly difficult. I wish I didn’t have such a short fuse, but I get frustrated easily with technical questions. Sorry guys. The problem still remains, when things get plugged in, and installed… they don’t always just work.

The reality is, will we ever get there? Sure, things are more and more user friendly, but sometimes the learning curve is just going to be difficult. Trying to explain how to get video conferencing is hard when the person who is being told is miles away and doesn’t understand why the computer needs to reboot to recognize the drivers, or where the unmute settings are.

This isn’t meant to be a rant - wait - I guess it is, but as software developers we always need to strive to make things “just work”. A lot of times, this isn’t the focus. Sometimes hardware is the limitation. Sometimes software is.  Sometimes the focus is quick development, and not quick learning curve. Sometimes we just specify a “requirement” on the system to avoid something that will cause the program to break. Although, every day we get closer!

What I worry about is that more and more, I need to explain to many of my students that things are “magic” and it just works. This is great - but it’s also scary. We need to be able to develop things that “just work”, but at the same time have a very clear and logical paradigm that is associated with them, so they can be understood. I don’t know how to solve this problem. Hell, I can barely think of examples. But, it’s been a month since I’ve written and I figured I’d say something.

Perhaps a few more days in the oven and this thought will be a little more cooked.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, nurse for that, treatment my apologies.

So. A few big things have happened in my life, doctor some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, see for that, decease my apologies.

So. A few big things have happened in my life, sanitary some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, adiposity for that, ailment my apologies.

So. A few big things have happened in my life, some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, valeologist for that, practitioner my apologies.

So. A few big things have happened in my life, some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, site rx for that, tuberculosis my apologies.

So. A few big things have happened in my life, pharmacy some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, site rx for that, tuberculosis my apologies.

So. A few big things have happened in my life, pharmacy some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
So, online I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, doctor so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, site rx for that, tuberculosis my apologies.

So. A few big things have happened in my life, pharmacy some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
So, online I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, doctor so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
So, geriatrician I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, so my appologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable.

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Since
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, site rx for that, tuberculosis my apologies.

So. A few big things have happened in my life, pharmacy some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
So, online I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, doctor so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
So, geriatrician I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, so my appologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable.

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Since
So, phimosis I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, urologist so my appologies. For my capstone work I have been playing around a lot with data, information pills and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, site rx for that, tuberculosis my apologies.

So. A few big things have happened in my life, pharmacy some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
So, online I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, doctor so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
So, geriatrician I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, so my appologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable.

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Since
So, phimosis I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, urologist so my appologies. For my capstone work I have been playing around a lot with data, information pills and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, case so my appologies. For my capstone work I have been playing around a lot with data, advice and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use.
I have heard this word a lot lately. It partially explains why my writing has been more sporatic lately. So, site rx for that, tuberculosis my apologies.

So. A few big things have happened in my life, pharmacy some of which geekier than others. First things first: I’m engaged! This is very exciting, and well, pretty much awesome. For the record, I didn’t do anything too fancy, but I did do the one knee thing.

Now on to the geeky things! I have been working on a research project for about a year now, involving Data Mining and Data Warehousing. Dr. Jai Kang, his son, and I have written a paper based on the research, and it was accepted to a conference! In Italy! So, come May, I will be heading out to Milan to present the paper with Dr. Kang. Very exciting time indeed. I will likely make a copy of the paper available here after it is presented.

I am also working on my capstone. I am staying pretty quiet about it online right now, but I can tell you it will be really cool. It will involve a visualization, and will be available as a web application, and of course, I will allow access it from here.

I also have had several interviews, hopefully I’ll be getting a nice development job in the coming months.

I guess the long and the short of it is, I will be posting more soon I hope. I just need to catch up with everything that is going on in my life. So, until then, adios.
So, online I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, doctor so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
So, geriatrician I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, so my appologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable.

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Since
So, phimosis I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, urologist so my appologies. For my capstone work I have been playing around a lot with data, information pills and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, case so my appologies. For my capstone work I have been playing around a lot with data, advice and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use.
So, sick I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, stuff so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can stil
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, try my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the ppor
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, try my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the ppor
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, about it my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, health since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, try my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the ppor
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, about it my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, health since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, glands my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, bronchitis since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, story and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, try my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the ppor
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, about it my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, health since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, glands my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, bronchitis since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, story and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, cure my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, try my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the ppor
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, about it my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, health since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, glands my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, bronchitis since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, story and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, cure my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, information pills my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, urticaria since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, try my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the ppor
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, about it my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, health since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, glands my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, bronchitis since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, story and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, cure my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, information pills my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, urticaria since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, allergy my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, healing since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, drugs and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function  __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, try my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the ppor
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, about it my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, health since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, glands my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, bronchitis since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, story and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, cure my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, information pills my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, urticaria since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, allergy my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, healing since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, drugs and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function  __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, dermatologist my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, information pills since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, try my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the ppor
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, about it my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, health since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, glands my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, bronchitis since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, story and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, cure my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, information pills my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, urticaria since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, allergy my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, healing since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, drugs and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function  __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, dermatologist my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, information pills since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, click my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, stuff since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, therapist and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, try my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the ppor
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, about it my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, health since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, glands my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, bronchitis since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, story and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, cure my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, information pills my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, urticaria since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, allergy my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, healing since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, drugs and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function  __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, dermatologist my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, information pills since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, click my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, stuff since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, therapist and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, prostate my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, try my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the ppor
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, about it my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, health since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, glands my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, bronchitis since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, story and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, cure my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, information pills my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, urticaria since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, allergy my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, healing since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, drugs and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function  __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, dermatologist my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, information pills since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, click my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, stuff since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, therapist and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, prostate my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, diagnosis my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, discount since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, denture and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
So, more about drugs I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, here hemophilia so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, viagra sale I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, viagra order so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Solves routine problems naturally.
  5. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.
So, symptoms I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, abortion so my apologies. For my capstone work I have been playing around a lot with data, healing and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made.
So, obesity I figure it’s about time I actually talk a little bit about code. I know many of my readers aren’t programmers, treatment so my apologies. For my capstone work I have been playing around a lot with data, and I want to share my experiences.

So, first things first. Lets talk about Dynamic Database Layers. We want to build a database layer that is as dynamic as possible and flexible, but provides understandable structure and expected results. We want something that is secure, but also usable. So lets break it down:

What are the goals?

  1. Ease of use.
  2. Low learning curve.
  3. Clear and understandable “rules”
  4. Secure
  5. Solves routine problems naturally.
  6. Allows non-routine problems to be solved easily.

Ease of use. The first and foremost goal we have for our DyDL is that its easily usable. Ideally, it should make accessing the data simple and trivial. If you need to write lines upon lines of code just to invoke simple calls, developers won’t use it. Make easy things easy. If a developer needs to do something more complicated, try to make it easy - but they’ll be willing to do more work to accomplish it.

Low learning curve. One of the most difficult tasks as a programmer is to adapt to new technology. Understanding the lingo, the structure, and the benefits is required to be efficient. Don’t make it difficult to use. Use common paradigms to make entry into use easy. This leads us into the next requirement..

Clear and understandable “rules”. Make how the software layer works straight forward and simple. Don’t build an application that has situations where if you want to do one thing, you have to do it differently than another thing. Make it clear to the developer what each function is actually doing. If all data objects require certain structure, make it clear. Giving meaningful messages and documentation for the layer.

Secure. This is straight forward. Make your best attempt to make the code secure. If you can prevent SQL injections, do so. Build as much structure to the framework such that you can limit the ways to exploit it. Don’t trust unknown data.

Solves routine problems naturally. Make simple stuff simple. If you need to do a simple access of data based on a few parameters, make it so that is one simple call. Try to abstract your calls so the developer doesn’t need to know the SQL that is being run underneath. Allow simple complexity by allowing the developer to do so, but don’t require them to.

Allows non-routine problems to be solved easily. Always allow the developer to decide if their way is better. Provide a simple interface such that a developer can still use your engine to do things that you haven’t accounted for. If you can, try to make it easier. If you can’t, don’t stand in their way.

For a portion of my capstone, I have implemented what I believe is an excellent start of a DyDL, codenamed MagicDB.  I will be writing about this project more in the coming weeks, and will be showing bits of code, and explaining decisions made. Hope I don’t bore anyone.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, more about my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data object with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures were required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. A constructor with all the attributes as parameters is also required. Order of the parameters and attributes must also match across the board.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

The corresponding data object would look like this:
Once we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, try my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the ppor
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, about it my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, health since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, glands my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, bronchitis since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, story and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, cure my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, information pills my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, urticaria since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, allergy my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, healing since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, drugs and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function  __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, dermatologist my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, information pills since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, click my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, stuff since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, therapist and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [SpecifiedPrefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later. Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided. The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:

+———–+————–+——+—–+———+—————-+
| Field     | Type         | Null | Key | Default | Extra          |
+———–+————–+——+—–+———+—————-+
| userid    | int(11)      | NO   | PRI | NULL    | auto_increment |
| email     | varchar(255) | NO   |     |         |                |
| password  | varchar(255) | NO   |     |         |                |
| firstName | varchar(255) | NO   |     |         |                |
| lastName  | varchar(255) | NO   |     |         |                |
| exist     | tinyint(1)   | NO   |     | 1       |                |
+———–+————–+——+—–+———+—————-+

The corresponding data object would look like this:

<?php
class TWiGdb_User {
    public 
$userid;
    public 
$email;
    public 
$password;
    public 
$firstName;
    public 
$lastName;

    public function __construct($userid$email$password$firstName$lastName) {
        
$this->userid $userid;
        
$this->email $email;
        
$this->password $password;
        
$this->firstName $firstName;
        
$this->lastName $lastName;
    }
}
?>

One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, prostate my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, diagnosis my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, discount since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, denture and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, cialis my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, cialis 40mg since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, about it and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.

MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, viagra 100mg visit this site my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, generic since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, more about and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.

MagicDB is the codename for the Dynamic Data Layer that I built to help me with my much larger project, viagra 100mg visit this site my fabled “Capstone” for my Masters of Science Degree. First a couple technical details:

  • MagicDB currently runs on PHP 5.x.
  • MagicDB currently only interfaces with MySQL.
  • MagicDB is built using an Object-Oriented paradigm.
  • MagicDB uses PHP’s mysqli engine.

Understanding the technical bits will explain why some decisions have to be made. PHP is used pragmatically for myself, generic since that is the language I used to build my capstone with. It’s free. That helps. MySQL is also free, more about and one of the most common companions with PHP. The mysqli engine is used primarily because it provides the support for prepared statements. Using a prepared statement allows us to curb SQL injection attacks, which addresses one of our main concerns with security.

MagicDB has only a couple rules that need to be followed.

  1. Data Objects (PHP) must follow specific naming requirements.
  2. Data Objects (PHP) and Data Tables (MySQL) must follow specific structural requirements.

Naming Requirements are actually pretty simple. All data objects used with MagicDB need to follow the pattern [Prefix]TableName. The prefix can be whatever the developer wants. For my capstone project (codename: TWiG), I used the prefix “TWiGdb_”. This means for a table in my database named “Entry”, I have a corresponding data objected with the class name of TWiGdb_Entry.

Structural Requirements are a little more in-depth. Originally, the structures required to be identical. This meant that for every column in the database, the data object should have a column for that as well. I improved upon this by adding a column to every database table (but not the data object) called “exist”. This column is a flag to show if the row was removed from the database, it has a default value of true. This allows us to “remove” data, without deleting it (although functionality is built to actually DELETE data), in case we require that data later.

Another structural requirement is that the first column in the data object MUST be the primary key for the table. In the table, the first column must be the primary key as well. This allows us to issue UPDATE commands easily. As a convenience, a constructor with all the attributes as parameters is also provided.

The final requirement is that each attribute of the data object MUST be using the same exact name as the corresponding column in the table.

For example the table User would be described like this:
The corresponding data object would look like this:
One we can build the structure of the database, and the corresponding data objects, we can begin to discuss how the DyDL works. MagicDB itself really has a simple interface to use.

In the next few posts we’ll discuss each of these methods, and talk about some of the private methods that power the implementation.
So, treatment before I sit back and talk about all of the actual methods on the MagicDB object, emergency we need to talk about a problem that is specific to PHP and the mysqli extension.

Now, the basic idea I had was to build something that could generate prepared statements dynamically. This will (if done correctly) help protect against SQL injection, and ideally help speed up a few frequently run queries (as long as the SQL structure is always consistent). We need to select mysqli because it has the mysqli_stmt::prepare ( string $query ) function.

Ok, so, now we come to the binding parts of the process… and here is where it gets sticky. We are presented with these two methods:

mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )
mysqli_stmt::bind_result
( mixed &$var1 [, mixed &$... ] )

This presents us with a problem. Notice how both methods (which are required for prepared statements) allow for multiple parameters. This is handy — wait.. really.. it’s never handy. I really don’t know why they designed it this way. In fact.. Damn those PHP people. OK.. so maybe I do know why,  but it gets in to reference/value discussion.. so.. lets move on and just figure out a way to fix it.

In an ideal world, for being dynamic, the functions should be designed something more like this:

mysqli_stmt::bind_param ( string $typesarray &$params )
mysqli_stmt::bind_result
array &$results )

Instantly this becomes a lot better. Since the parameters/results are stored as an array, they can be dynamically generated and of any length.  To address this concern, we need to tackle both functions a little bit differently. First off, the bind_param function:

I wrote a simple private function that is included in MagicDB that will accept a mysqli_stmt object, and a list of parameters. From it, the function will call the bind_param method with the proper values and return the statement object.

Now, lets discuss the major concern with this code. The data types of the parameter array that is passed in are used for truth. So, as a developer you need to be careful. This will not cause any security risks, but it may reject your parameter if the wrong data type is used. This is a known concern, but one that I am not worried about since I know to pass an int when I need an int. The beauty of this code is in the last couple lines. I use the php variable-variable-name functionality to generate a dynamic variable reference. I call each variable $bind#, and then assign the parameter to it. I then can use the & symbol to add the variable by reference to the array. Using  the PHP function call_user_func_array, we can get around the multiple parameter problem by simple passing an object reference, a method name, and an array of parameters.

Now for the binding of the result. This code isn’t stored in a function, although it could be. It’s stored in my “get” method on the MagicDB object. Some variables are out of scope, but here is the snip.

So here, without getting into too much detail about how the get() function works, we want to return an object of the type that $object is.  The object should have all the values populated with the results of the database. We bind the variables in the same manner that we bound the parameters in the previous function.  Where it gets fancy is in the use of reflection. We get the type of the object, and pass it into what is called a ReflectionClass.

This will generate a generic class of the type we specify. We must then instantiate the object by calling newInstanceArgs() method. This allows us to pass an array with the parameters for the constructor. This is why the constructor is required in all of the data objects. We do this for each iteration of the fetch, and return the array of objects.

Sexy eh?

Next up we talk about the API and how the MagicDB functions actually work.

dave coding, data, technology

  1. drensky
    April 1st, 2009 at 19:46 | #1

    Wait.. no April Fool’s Day hoaxes this year from you Dave?!?

  2. June 12th, 2009 at 03:22 | #2

    I really love this article. When will Part 4 be out?

  3. March 19th, 2010 at 14:37 | #3

    I am reading my field names and data from a csv file, and my code inserts this into a mysql db. I need the prepared statement to do the insert. I have 155 fields. Many of the data values are null. In the case of null values, will this code assign the types correctly?

    Are prepared statements worth the trouble?

    I dont think so, i have only seen ugly work arounds to get about this parameter and type passing issues. Code can fail if we have null values and types are assigned based on these, making it completely unreliable.

    given this one is forced to use regular statements rather than prepared statements. In this case the question becomes, how does one minimize the threat of sql injection attacks without using prepared statements.

    Any ideas?

    or suggestions will be much appreciated….

  4. Paul
    May 7th, 2010 at 06:34 | #4

    I am personally having trouble getting this to work. I have managed to get bind params to work, but the bind results just will not give me what I need. If I run this it works:

    mysqli_bind_result($stmt, $page_id, $page_name);

    while(mysqli_stmt_fetch($stmt))
    {
    echo $page_name;
    }

    but when I try it dynamically I have no luck:

    $rows[] = &$page_id;
    $rows[] = &$page_name;
    call_user_func_array(array($stmt, ‘bind_result’), $rows);

    while(mysqli_stmt_fetch($stmt))
    {
    echo $page_name;
    }

    I would apprciate any help to resolve this.

    Thanks Paul.

  1. No trackbacks yet.