PDO connectie error
Mij config.php
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
// Database info
$host = 'localhost';
$user = 'xxxxx';
$pass = 'xxxxx';
$database = 'db75076';
// Make connection
$conn = new PDO( "mysql:" . "host=$host;" . "dbname=$database", '$user', '$pass');
?>
// Database info
$host = 'localhost';
$user = 'xxxxx';
$pass = 'xxxxx';
$database = 'db75076';
// Make connection
$conn = new PDO( "mysql:" . "host=$host;" . "dbname=$database", '$user', '$pass');
?>
Mij index.php
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
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
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php
// Database + connection
require_once('config.php');
// Check connection
if (!conn) {
die('Connection failed: ' . PDO::erroCode());
}
// Create query
$result = "SELECT * FROM Students";
// Check query
if (PDO::query($conn, $result)) {
# code...
}
// Insert query into table
// Close connection
$conn = null;
?>
</body>
</html>
<html>
<head>
<title></title>
</head>
<body>
<?php
// Database + connection
require_once('config.php');
// Check connection
if (!conn) {
die('Connection failed: ' . PDO::erroCode());
}
// Create query
$result = "SELECT * FROM Students";
// Check query
if (PDO::query($conn, $result)) {
# code...
}
// Insert query into table
// Close connection
$conn = null;
?>
</body>
</html>
Edit:
code-tags toegevoegd. Gelieve deze in het vervolg te gebruiken.
Gewijzigd op 30/12/2017 23:32:35 door - Ariën -
Gewijzigd op 30/12/2017 23:33:05 door - Ariën -
'Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user '$user'@'localhost'
Link naar mijn project: http://75076.ict-lab.nl/Php%20Project/index.php
Variabelen horen buiten quotes.
Een niet-gevangen exception levert altijd een Fatal Error op.
En laat de exception bij het connecten nu alle connectie-info uitspugen wanneer deze mislukt...
En vergeet je character encoding niet.
met .env bestanden, is al een stuk veiliger.
Nog een aanvullende tip: zet nooit connectie info hard in je code. De manier waarop Laravel het doet, Gewijzigd op 31/12/2017 10:01:40 door Jan Koehoorn
Jan Koehoorn op 31/12/2017 10:00:57:
Nog een aanvullende tip: zet nooit connectie info hard in je code. De manier waarop Laravel het doet, met .env bestanden, is al een stuk veiliger.
Heb er van gehoord maar weet niet precies hoe het werkt. Dus een config file met daarin mijn credentials is verkeerd?
Wat jij doet is je connectie in je config-bestand laden. En dat is niet echt de juiste bedoeling.
De config is bedoeld voor configuratie-instellingen, en jij doet meer dan dat in dat bestand. ;-)
Het beste is zelfs als je jouw config hoger dan jouw publieke map van je website zet. Mocht je server opeens geen PHP-meer willen parsen door een fout, dan liggen je codes niet zomaar op straat.
Gewijzigd op 31/12/2017 12:55:25 door - Ariën -
Oh oke dan weet ik dat, heb het zo via school aangeleerd en sommige code snippets zie je het ook zo vandaar.
Gewijzigd op 31/12/2017 13:10:55 door - Ariën -
Kijk voor de grap eens naar hoe PDO::query werkt. Zoals je het nu probeert kan het echt niet. Ook het opbouwen van de connectie werkt niet zo. Voor referentie:
http://www.php.net/pdo_construct
http://www.php.net/pdo_query
e code aangepast en de connectie is gelukt. Heb gekeken naar de foreach loop maar kwam er niet egt uit, heb gekeken hoe andere het doen, maar krijg alsnog een error:
Invalid argument supplied for foreach()
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
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
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php
// Database + connection
require_once('config.php');
// Make and check the connection with PDO
try {
$conn = new PDO($dsn, $user, $pass);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
if ($conn) {
echo 'Connected';
}
// Create query
$result = 'SELECT * FROM Students';
// Insert query into table
foreach ($result as $row) {
echo $row . "/n";
}
// Close connection
$conn = null;
?>
</body>
</html>
<html>
<head>
<title></title>
</head>
<body>
<?php
// Database + connection
require_once('config.php');
// Make and check the connection with PDO
try {
$conn = new PDO($dsn, $user, $pass);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
if ($conn) {
echo 'Connected';
}
// Create query
$result = 'SELECT * FROM Students';
// Insert query into table
foreach ($result as $row) {
echo $row . "/n";
}
// Close connection
$conn = null;
?>
</body>
</html>
Gewijzigd op 31/12/2017 22:02:36 door Izildo Pimentel
Waar voer je de query dan uit? Waar is $conn->query(....)?
En gebruik ook a.u.b. code-tags voor je script in het forum.
Heb gebruik gemaakt van de quote tags, maar snap niet waarom het zo eruit komt.
Gebruik dan code tags zoals gevraagd.
Dankje! :-)