2023/1/15
teratailでやれ
掲示板を作るにあたって、ログインページと新規登録ページを作ろうとしています。
mySQLを使ったPHPMyAdminでsampleというデータベースを作成し、その中にidとusernameとpasswordというカラムを持ったusersデーブルを用意しています。
しかし、signin.phpページから名前とパスワードを入力して「新規登録」ボタンを押すと、以下のようなエラーが出ます。
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
ちなみにapachのポート番号は8888でmySQLのポート番号は8889です。
index.php
1<!DOCTYPE html>
2<html lang="ja">
3<head>
4 <meta charset="UTF-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>サンプル掲示板</title>
8</head>
9<body>
10 <h1>ログイン画面</h1>
11 <form action="" method="POST">
12 ユーザー名<input type="text" name="username" value=""><br>
13 パスワード<input type="password" name="username" value=""><br>
14 <input type="submit" name="login" value="ログイン">
15 </form>
16 <a href="signin.php">新規登録</a>
17</body>
18</html>
signin.php
<?php
if(isset($_POST['signin'])){
$username = $_POST['username'];
$password = $_POST['password'];
try {
$db = new PDO('mysql:host=localhost8889;dbname=sample', 'root', 'root');
$sql = 'insert into users(username, password) values(?, ?)';
$stmt = $db->prepare($sql);
$stmt->execute(array($username, $password));
$stmt = null;
$db = null;
}catch(PDOException $e){
echo $e->getMessage();
exit;
}
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>新規登録画面</title>
</head>
<body>
<h1>新規登録画面</h1>
<form action="" method="POST">
ユーザー名<input type="text" name="username" value=""><br>
パスワード<input type="password" name="password" value=""><br>
<input type="submit" name="signin" value="新規登録">
</form>
</body>
</html>
このエラーが出る原因わかりますか?