Database connection doesn't work
Ik ben nieuw in OOP.
Ik heb zo juist mijn eerste OOP code geschreven maar hij werkt niet.
Kunnen jullie aub naar mijn code kijken en de fout aanwijzen?
Alvast bedankt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
require_once("config.php");
class MySQLDatabase {
private $connection;
function __construct(){
$this->open_connection();
}
public function open_connection() {
// $this->connection = mysql_connect();
$this->connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS);
if (!$this->connection)
{
// die("Database connection failed: " . mysql_error());
die("Database connection failed: " . mysqli_error());
}
else
{
// $db_select = mysql_select_db(DB_NAME, $this->connection);
$db_select = mysqli_select_db(DB_NAME, $this->connection);
if (!$db_select)
{
// die("Database selection failed: " . mysql_error());
die("Database selection failed: " . mysqli_error());
}
}
}
}
$database = new MySQLDatabase();
?>
require_once("config.php");
class MySQLDatabase {
private $connection;
function __construct(){
$this->open_connection();
}
public function open_connection() {
// $this->connection = mysql_connect();
$this->connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS);
if (!$this->connection)
{
// die("Database connection failed: " . mysql_error());
die("Database connection failed: " . mysqli_error());
}
else
{
// $db_select = mysql_select_db(DB_NAME, $this->connection);
$db_select = mysqli_select_db(DB_NAME, $this->connection);
if (!$db_select)
{
// die("Database selection failed: " . mysql_error());
die("Database selection failed: " . mysqli_error());
}
}
}
}
$database = new MySQLDatabase();
?>
En nog een goede tip: Gebruik gewoon de MySQLi-versie met OOP. die() is niet netjes, hiervoor zijn exceptions bedoeld.
Nog mooier is een wrapper waarin je al je nodige MySQLi-objecten aanroept, zodat je eenvoudig een andere databasedriver kan implementeren.
Gewijzigd op 09/10/2017 18:22:36 door - Ariën -
$DB_SERVER, $DB_USER, $DB_PASS ??
Gewijzigd op 09/10/2017 18:23:23 door John D
Bedankt voor je tips.
In config.php heb ik mijn wachtwoorden staan (DB_SERVER, DB_USER, DB_PASS, DB_NAME).
In de index.php heb ik een kleine test gedaan of er een connection is met database. Maar hij reageert niet.
if (isset($database))
{
echo 'True';
}
else
{
echo 'False';
}
John D op 09/10/2017 18:23:08:
Ik ben niet into OOP maar misschien:
$DB_SERVER, $DB_USER, $DB_PASS ??
$DB_SERVER, $DB_USER, $DB_PASS ??
Nee, hij gebruikt constantes.
FOUT:
$db_select = mysqli_select_db(DB_NAME, $this->connection);
CORRECT:
$db_select = mysqli_select_db($this->connection, DB_NAME);
Bedankt jongens voor tips.