i’m new to OOP so i’m following a tutorial. so in that it uses following codes to connect to the database but in my case it is not connecting
databas.php
<?php
require_once("config.php");
class MySQLDatabase {
private $connection;
function __construct() {
$this->open_connection();
}
public function open_connection() {
$this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if (!$this->connection) {
die("Database connection failed: " . mysql_error());
} else {
$db_select = mysql_select_db(DB_NAME, $this->connection);
if (!$db_select) {
die("Database selection failed: " . mysql_error());
}
}
}
public function close_connection() {
if(isset($this->connection)) {
mysql_close($this->connection);
unset($this->connection);
}
}
public function query($sql) {
$result = mysql_query($sql, $this->connection);
$this->confirm_query($result);
return $result;
}
public function mysql_prep( $value ) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists( "mysql_real_escape_string" ); // i.e. PHP >= v4.3.0
if( $new_enough_php ) { // PHP v4.3.0 or higher
// undo any magic quote effects so mysql_real_escape_string can do the work
if( $magic_quotes_active ) { $value = stripslashes( $value ); }
$value = mysql_real_escape_string( $value );
} else { // before PHP v4.3.0
// if magic quotes aren't already on then add slashes manually
if( !$magic_quotes_active ) { $value = addslashes( $value ); }
// if magic quotes are active, then the slashes already exist
}
return $value;
}
private function confirm_query($result) {
if (!$result) {
die("Database query failed: " . mysql_error());
}
}
}
$database =& new MySQLDatabase();
$db =& $database;
?>
config.php
<?php
// Database Constants
defined('DB_SERVER') ? null : define("DB_SERVER", "localhost");
defined('DB_USER') ? null : define("DB_USER", "oop_project");
defined('DB_PASS') ? null : define("DB_PASS", "");
defined('DB_NAME') ? null : define("DB_NAME", "oop_project");
?>
function.php
<?php
function strip_zeros_from_date( $marked_string="" ) {
// first remove the marked zeros
$no_zeros = str_replace('*0', '', $marked_string);
// then remove any remaining marks
$cleaned_string = str_replace('*', '', $no_zeros);
return $cleaned_string;
}
function redirect_to( $location = NULL ) {
if ($location != NULL) {
header("Location: {$location}");
exit;
}
}
function output_message($message="") {
if (!empty($message)) {
return "<p class=\"message\">{$message}</p>";
} else {
return "";
}
}
?>
when i going to test the connection
i got these errors.
Deprecated: Assigning the return value of new by reference is deprecated in J:\xampp\htdocs\oop_project\includes\database.php on line 60
Deprecated: Assigning the return value of new by reference is deprecated in J:\xampp\php\PEAR\Config.php on line 80
Deprecated: Assigning the return value of new by reference is deprecated in J:\xampp\php\PEAR\Config.php on line 166
Notice: Use of undefined constant DB_SERVER - assumed 'DB_SERVER' in J:\xampp\htdocs\oop_project\includes\database.php on line 13
Notice: Use of undefined constant DB_USER - assumed 'DB_USER' in J:\xampp\htdocs\oop_project\includes\database.php on line 13
Notice: Use of undefined constant DB_PASS - assumed 'DB_PASS' in J:\xampp\htdocs\oop_project\includes\database.php on line 13
Warning: mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: No such host is known. in J:\xampp\htdocs\oop_project\includes\database.php on line 13
Warning: mysql_connect() [function.mysql-connect]: [2002] php_network_getaddresses: getaddrinfo failed: No such host is known. (trying to connect via tcp://DB_SERVER:3306) in J:\xampp\htdocs\oop_project\includes\database.php on line 13
Warning: mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: No such host is known. in J:\xampp\htdocs\oop_project\includes\database.php on line 13
Database connection failed: php_network_getaddresses: getaddrinfo failed: No such host is known.
how can i correct this…? thank you.
The “deprecated” warnings are because you’re using
replace with
The notices are because it seems the constants (DB_SERVER, …) are not defined before you try and instantiate the class (new MySQLDatabase). Make sure config.php is loaded before.
The other warnings are connected to those same issues.
The include for config.php is actually including
J:\xampp\php\PEAR\Config.php
not your local config file.