Skip to main content

Simple tip for OOP MySQLi in PHP

The purpose of this tutorial is to show you how I use PHP's OOP MySQLi in larger projects.


For larger projects, I like to separate out the connection to the MySQLi in another file. We'll call the class db_connect.php since that's what most books seem to reference it as.

db_connect.php--

















I'll take it another step further and create a class that's going to make it simple for me to call other classes. I'll call
it 
ClassInitialization. This class will only contain one method className() and it's purpose will be to initialize other classes.

class_initialization.php
--
















As is evident from the above code, the className() method requires 2 parameters: the name of the class that you want initialized and an optional file location parameter. It'll then require_once() the file and return the new ClassName object.

To put the 2 classes that we've created together, you'll need to create a third class that will do something specific for your website. In this case I'm creating a class that will provide the user with further details on selected products. I'll name the class PageItemDetails.

item_details.php
--


First thing that you may notice is the extends of the ClassInitialization class. We want to be able to use that className() method.

We go ahead and initialize a $_mysqli property globally instead of locally from every method.

The first example of how effective the ClassInitialization class is can be seen in the __construct() method. You call the className() method and pass the name of the db_connect class called DatabaseConnection and you pass it's location db_connect.php.

If you reference the code in ClassInitialization, you'll see that it'll require_once() the db_connect.php file and initialize the DatabaseConnection object.

From there you are free to use the $_mysqli property in all of the subsequent methods.


From the above code, you'll notice that it's just a regular OOP MySQLi statement.  You generate the $sql statement; you prepare the $sql statement; you bind the parameters to the statement; You execute the statement and grab the result.

Here I use the className() method again to call the error page. The only other notable portion of the code is the $smt->close(). You'll also want to close the $_mysqli, but since it's used in most methods within this class, you'll want to close it last. I just create a __destruct() method to end it.


Hope that helps optimize your code. To conclude, the key portions that you'll want to pay attention to is the __construct() and __destruct() methods to optimize your code. It's up to you whether you want to utilize the ClassInitialization class.

Comments

Popular posts from this blog

Beginner Java Exercise: Sentinel Values and Do-While Loops

In my previous post on while loops, we used a loop-continuation-condition to test the arguments. In this example, we'll loop at a sentinel-controlled loop. The sentinel value is a special input value that tests the condition within the while loop. To jump right to it, we'll test if an int variable is not equal to 0. The data != 0 within the while (data != 0) { ... } is the sentinel-controlled-condition. In the following example, we'll keep adding an integer to itself until the user enters 0. Once the user enters 0, the loop will break and the user will be displayed with the sum of all of the integers that he/she has entered. As you can see from the code above, the code is somewhat redundant. It asks the user to enter an integer twice: Once before the loop begins, and an x amount of times within the loop (until the user enters 0). A better approach would be through a do-while loop. In a do-while loop, you "do" something "while" the condition...

Programming Language Concepts Test Questions/Answers

One of the easiest methods that I use to learn new topics is by creating notes on the subject and then by turning those notes into questions and answers. Remembering answers to questions just seems more natural. I was able to memorize 323 questions and answers in a matter of a couple of days. I wanted to start doing this for some topics that I find pretty interesting. To begin, here are some questions and answers to Programming Language Concepts (PLC). I'm reading your mind right now and the answer is yes, there will be more. 1. Name 3 reasons for studying PLC. - Better understanding of current programming languages - Advancement of computing - Increased capability to express ideas - Increased capability to learn new programming language. - Better understanding of which programming language to choose.  2. Name the 5 programming domains and languages best suited for each. - Scientific (Fortran, ALGOL 60) - Business (COBOL) - AI (Lisp, Scheme, Prolog) - Web (PHP, ...

Laravel 6.x with React and react-router

This will get you started on getting your first React/Laravel application deployed to your server. We'll cover everything from installation to deployment. Start by reading the installation instructions on  https://laravel.com/docs/6.x#installing-laravel . We'll cover those details below. Setting Up Laravel Check that you have the latest version of PHP installed on your computer.  It must be >= 7.2.0. Open terminal to get the Laravel installation tool. Type in composer global require laravel/installer Type in laravel to verify installation. Navigate to a directory on your computer where you want to install your project on your terminal. Run the following command: laravel new project_name (replace project_name with your project name). Once complete, cd into your new project. Type the following command: php artisan serve. You'll get a message like the following if it's running successfully: Laravel development server started: http://127.0.0.1:8000 ...