I am a beginner in PHP programming and would like help with a little question. Please take a look at the code below:
PHP Code
<?php
class Account
{
public function register()
{
$db_link = mysql_connect("localhost","root",""); // Create Connection
if (!$db_link) // Check connection
{
die(mysql_error());
}
mysql_close($db_link); // Close Connection
}
public function login()
{
$con = mysql_connect("localhost","root","") // create connection
if (!$con) // create connection
{
die(mysql_error());
}
mysql_close($con); //close connection
}
}
?>
My question is if creating individual db links for every single one of the object's methods is the best way to go? Is there a better or alternative way to do this? Hopefully I've explained well enough.
Would the following be correct?
$x = new Account("localhost", "root", "");
-and x would have its own connection...and then close when its done?
You can use some codes like as:
Other queries would be here
Creating single connection at each page is enough. more than one connection or disconnecting from sql server and loginning again may cause reduced performance.
If you wanted to shrink it and keep it neater/more manageable you could put the mysql connect code into it's own method and call it like so:
I suggest:
I would not advise creating your database connections this way. Create one connection and inject that into the object using it. You should not need to create a new connection for every object.
Code example:
Would need to change
Account
to look like:I would also suggest that you take a look at the php.net docs about choosing a MySQL API. If you really want to use OOP with PHP and MySQL you will need to swap over to
mysqli
orPDO
as the API you are using does not truly support an OOP interface.You can use a static member and all your objects will share one database connection.
See also PHP - a DB abstraction layer use static class vs singleton object?