I have defined some constants eg:
define('DB_HOSTNAME', 'localhost', true);
define('DB_USERNAME', 'root', true);
define('DB_PASSWORD', 'root', true);
define('DB_DATABASE', 'authtest', true);
now when I try to do this:
class Auth{
function AuthClass() {
$this->db_link = mysql_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD)
or die(mysql_error());
}
}
I get an error. Why is this and what do I need to do?
See, I've tried using (for example) global DB_HOSTNAME
but this fails with an error.
The error I am getting is:
Unknown MySQL server host 'DB_HOSTNAME' (1)
When the script runs, both the constant and the class definitions should be included.
e.g.
constants.php.inc
define('DB_HOSTNAME', 'localhost', true);
define('DB_USERNAME', 'root', true);
define('DB_PASSWORD', 'root', true);
define('DB_DATABASE', 'authtest', true);
Auth.php.inc
class Auth{
function AuthClass() {
$this->db_link = mysql_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD)
or die(mysql_error());
}
}
script.php
include "constants.php.inc";
include "Auth.php.inc";
//do stuff
It should work as long as you've defined the constants before AuthClass()
runs. If they are not in the same file as your Auth
class, you will first need to include them within the file that Auth
resides in so it can see them:
include("the_file_that_has_those_constants_in_it.php");
Then it should just work. Constants are already global so there is no need to use the global
keyword.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With