Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP,奇怪的错误_Php_Mysql - Fatal编程技术网

PHP,奇怪的错误

PHP,奇怪的错误,php,mysql,Php,Mysql,所以我得到了这个PHP程序,当我运行它的时候,它可以工作,但是当我点击我的按钮引用下一个.PHP文件时,我得到了这个错误 SQLSTATE[HY000][2002]无法建立连接,因为目标计算机主动拒绝了它。 注意:第20行C:\xampp\htdocs\school\SEDbekijken.php中的未定义变量:db 致命错误:在第20行的C:\xampp\htdocs\school\SEDbekijken.php中调用null上的成员函数query() 有什么问题 以下是我的PHP文件: &l

所以我得到了这个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>

博肯利斯特范利林根酒店

Op dit时刻为het:

你会怎么做?


当我点击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>

博肯利斯特

以下是您错误的真实答案:

默认MySQL端口是3306,如果使用默认设置,则不需要指定端口。如果更改,则需要手动指定端口号

另一个原因可能是需要配置活动防火墙

因此,如果您在创建与数据库的连接时出现致命错误,最好使用“退出”;在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;
}

那么,我该如何修复它呢DTry:
$db=newpdo('mysql:host=localhost;port=3306;dbname=boekenlijst','root',''(或您使用的端口)听起来好像您的MySQLd没有运行。或者在其他端口上运行。MySQL没有在
localhost:3306
上运行(其中
3306
是默认端口)。请尝试将主机从“localhost”替换为“127.0.0.1”。嗨,PDO默认情况下不会抛出可捕获的错误,可以添加setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);你的答案是什么?