It’s been a bit since I last revisited my code journey, so I opted to make up for some lost time by blasting through quite a few lessons in one day. To clarify what I mean by this, here are the topics:
- PDO First Steps
- Extract a PHP Database Class
- Environment and Configuration
- Database Tables and Indexes
- Rendering Content
- Introduction to Authentication
- Refactoring
Clearly, there’s a lot going on here. Basically, what I’ve ended up with is a simple application that can connect to a MySQL database, retrieve content, display the content – and reject my attempts to show the content if I’m not the correct user.
I learned about SQL injections – which to be honest I’m aware of how they work (who doesn’t remember Bobby Tables), but the method in which it was mitigated in this course confuses me a bit. Basically, the query is broken up into two halves – the hardcoded half, and the user-inputted half. I get that the user input is sanitized somehow, but I’m not quite clear on that part. Historically I used to escape everything using a function that is forgotten to me now, but for this, we just made the user input an array. It worked, but I’d be lying if I said my head didn’t hurt a bit.
Another item that I finally got to see was $this. As an amateur programmer looking in from the outside, $this SEEMS to make sense? But I finally got to use it! I think I know the cases in which it’s appropriate, but only time will tell!
Finally, we used a lot of -> and => and I have to say, another one I’m not totally clear on. Unfortunately, there’s enough here that I just don’t know enough yet to be comfortable with, so I will likely rewatch these lessons just to make sure they set in. Because I’ve written all of the code, I can concentrate on just learning the lesson and taking notes instead of writing code to keep up.
One thing I am proud of is when it came to concepts I did know (like foreach, or inline echo), I paused the video and wrote the code myself before the instructor did – just to see if I could work without a crutch.
Some code blocks:
$statement = $this->connection->prepare($query);
Code language: PHP (php)
$dsn = 'mysql:' . http_build_query($config, '', ';');
$this->connection = new PDO($dsn, $username, $password, [PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC]);
Code language: PHP (php)
$currentUserId = 3;
if ($note['user_id'] !== $currentUserId) {
abort(Response::FORBIDDEN);
}
require "views/note.view.php";
Code language: PHP (php)
1 thought on “#100DaysOfCode[’12’,’BigInt’];”