But we just accomplished more than our first query in PHP. We also just saw
one of the most fundamentally important concepts to almost any programming
To talk to the database, we first open a connection using a class called
PDO. This returns an object, which we set to the $pdo variable. We
haven’t talked about classes or objects yet, but it’s not important for you
to understand them. Just know that an object is another PHP data type.
So in addition to strings, numbers, arrays and booleans, we have objects.
We’ll learn a little about them now, and a lot more in future episodes.
That PDO thing is called a class, but you can think of it as a function
that has arguments like anything else. Its first argument is a special string
that tells it to connect to a MySQL server that’s running on our computer
and to use the database called air_pup. The second and third arguments
are the username and password to the server.
But instead of returning an array, boolean or string, this function returns
a PDO object. Let’s dump the variable and refresh:
This doesn’t tell us much, but proves that this is a PDO object. For now,
you can think of the words “class” and “object” as meaning the same thing.
We’ll explore these more in future episodes.
Over the first few episodes, we’ve used a lot of functions, including core
PHP functions like array_reverse() and our own like get_pets(). We
can call a function from anywhere in our code, so we say that they are available
But some functions aren’t global: they live inside an object and we call
them through that object using this arrow (->) syntax:
$result=$pdo->query('SELECT * FROM pet');
Here, query is not one of those “global” functions: it belongs to the
PDO object. If we try to call it like a global function, it doesn’t exist!
Call to undefined function query()
Add the $pdo-> back so that we’re calling a query on that object. Now
the page works again.
Classes and objects belong to something called object-oriented programming,
which might be the most important programming concept you’ll ever learn.
But I don’t want to get too far into it now. Just be aware that we’ll be
working with a few objects. And each object has its own set of functions that
we can call, like query and fetchAll.
I have to warn you: there is another way to talk to MySQL in PHP that doesn’t
use classes and objects. The code looks something like this, and almost every
tutorial on the web will teach you this way:
mysql_connect('localhost','root',null);mysql_select_db('air_pup');$result='SELECT * FROM pet');$row=mysql_fetch_array($result);
See it? Simple enough? Great. Now, neverever use this. These functions
are old. In fact, they’re said to be “deprecated”, which means that a future
version of PHP will remove these. I want you to be a great developer, so
we’re going to skip straight past these and use the newer, better method
and leave this old stuff in the past.