I am very junior working with PHP, and until now, I have been working with mysqli. I have been told to learn PHP in general, so, I found a tutorial for doing CRUD using SQLite PDO.
I literally just started it with the first video, and I am confused already... I have done research on internet and php documentation, but I can't find the answer I am looking for.
$db = new PDO("sqlite:".__DIR__."/the_database.db");
This is the line to create the database; my question:
Does the database needs to be in the root directory of my project? I am finding so many different options on internet..... almost all of them the database doesn't even finish with .db but with .sqlite .... but I hope this part will be explained later on the tutorial.
My big question is, why am I adding ".__DIR.__"
, is it because it HAS TO BE on the root folder? Or could I just place it as $db = new PDO("sqlite:"the_database.db");
? I have been trying to answer the question myself, trying to find how to "SHOW DATABASES" or something like that but this SQLite seems so complex....
Thank you
First of all, you don't have to use PDO with SQLite. You can use it with mysql if you wish. And I am sure that there are a lot of videos that are using mysql as well. Though I am strongly convinced that all video tutorials are crap that will make you not a programmer but something opposite.
Now back to SQLite. So your question boils down to the __DIR__
constant which simply denotes the directory where lies the script where it written.
You see, SQLite database is simply a file. So it can have whatever name or extension, and be placed in any directory of your choice. The only problem with is the access to a newly created database. Imagine there are two php scripts on your site, one is
/index.php
and another is
/account/register.php
both working with a database.
If you address an SQLite database file as just "sqlite:the_database.db", then you'll end up with TWO databases - one in the root folder and one in the account folder. This is why you have to always prefix the filename with the absolute path. And __DIR__
constant is one of the ways to do so. If have a single file where $db = new PDO
is called, then it's ok to use this constant