所以我有这个PHP程序,当我运行它时它可以正常工作,但当我点击我的按钮引用下一个.php文件时,我收到此错误;
SQLSTATE [HY000] [2002]无法建立连接,因为目标计算机主动拒绝它。 注意:未定义的变量:第20行的C:\ xampp \ htdocs \ school \ SEDbekijken.php中的db
致命错误:在第20行的C:\ xampp \ htdocs \ school \ SEDbekijken.php中调用null上的成员函数query()
有什么问题?
以下是我的PHP文件:
<html lang="nl">
<head>
<meta charset="utf-8">
<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type ="text/css" href="boek.css">
<title>Boekenlijst van leerlingen</title>
</head>
<body>
<IMG SRC="3.png"></a>
<hr>
Op dit moment is het:
<?php echo date("d-m-Y, G:i");?>
<hr>
<br>
Wat wilt u doen?
<br>
<br>
<a href="SEDbekijken.php"><IMG SRC="1.png"></a>
<br>
<a href="SEDtoevoegen.php"><IMG SRC="2.png"></a>
</body>
</html>
当我点击那个ahref SEDbekijken.php我收到错误
这是SEDbekijken.php:
<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type ="text/css" href="boek.css">
<title>Boekenlijst</title>
</head>
<body>
<?php
// Maken van verbinding
try {
$db = new PDO('mysql:host=localhost;dbname=boekenlijst', 'root','');
}
catch(PDOException $e) {
echo $e->getMessage();
}
// De SQL opdracht
$sql = 'SELECT * FROM boeken';
$resultaat = $db->query($sql);
// De HTML-tabel opbouwen
echo '<table border = 1>';
foreach($resultaat as $row) {
echo '<tr>';
$nummer = $row['BoekNummer'];
echo '<td>'.$row['BoekNummer'].'</td>';
echo '<td>'.$row['Auteur'].'</td>';
echo '<td>'.$row['Titel'].'</td>';
echo '<td>'.$row['PlaatsNaam'].'</td>';
echo '<td>'.$row['Jaar'].'</td>';
echo '<td>'.$row['AantalPunten'].'</td>';
echo '<td>'.$row['NaamLeerling'].'</td>';
echo "<td><form action='SEDwijzigen.php' method='post'>
<input type='hidden' name='verstopt' value=$nummer>
<input type='submit' name='wijzig' value='wijzig'>
</form></td>";
echo "<td><form action='SEDverwijderen.php' method='post'>
<input type='hidden' name='verstopt' value=$nummer>
<input type='submit' name='verwijder' value='verwijder'></form></td>";
echo '</tr>';
}
echo '</table>';
// Sluiten van verbinding
$db = NULL;
?>
</body>
</html>
答案 0 :(得分:0)
这是您错误的真实答案: https://stackoverflow.com/a/25616113/2460773
默认MySQL端口为3306,如果使用默认设置,则无需指定端口。如果你改变它,你需要手动指定端口号,
另一个原因可能是需要配置的主动防火墙。
方式,如果您在创建与DB的连接时发生致命错误,最好使用&#39;退出&#39 ;;在catch块中,以便其余的代码不会被执行:
try {
$db = new PDO('mysql:host=localhost;dbname=boekenlijst', 'root','');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo $e->getMessage();
exit;
}