###前提・実現したいこと
以下のエラーが出てしまい、前に進めません。
助けてください。
###発生している問題・エラーメッセージ
Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)' in /Applications/MAMP/htdocs/todo/index.php:28 Stack trace: #0 /Applications/MAMP/htdocs/todo/index.php(28): PDO->__construct('mysql:dbname=to...', 'root', '') #1 {main} thrown in /Applications/MAMP/htdocs/todo/index.php on line 28
###該当のソースコード
php
1<?php 2ini_set( 'display_errors', 1 ); 3 4$errors = array(); 5 6if(isset($_POST['submit'])){ 7 8 $name = $_POST['name']; 9 $memo = $_POST['memo']; 10 11 $name = htmlspecialchars($name, ENT_QUOTES); 12 $memo = htmlspecialchars($memo, ENT_QUOTES); 13 14 if($name === ''){ 15 $errors['name'] = 'お名前が入力されていません。'; 16 } 17 18 if($memo === ''){ 19 $errors['memo'] = 'メモが入力されていません。'; 20 } 21 22 if(count($errors) === 0){ 23 24 $dsn = 'mysql:dbname=todolist;host=localhost;charset=utf8'; 25 $user = 'root'; 26 $password = ''; 27 28 $dbh = new PDO($dsn, $user, $password); 29 $dbh->query('SET NAMES utf8'); 30 $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 31 32 $sql = 'INSERT INTO tasks (name, memo, done) VALUES (?, ?, 0)'; 33 $stmt = $dbh->prepare($sql); 34 35 36 $stmt->bindValue(1, $name, PDO::PARAM_STR); 37 $stmt->bindValue(2, $memo, PDO::PARAM_STR); 38 39 $stmt->execute(); 40 41 $dbh = null; 42 43 unset($name, $memo); 44 } 45} 46?> 47<!doctype html> 48<html> 49<head> 50<meta charset="utf-8"> 51<title>Todoリスト</title> 52</head> 53<body> 54<h1>Todoリスト</h1> 55<?php 56if(isset($errors)){ 57 print("<ul>"); 58 foreach($errors as $value){ 59 print("<li>"); 60 print($value); 61 print("</li>"); 62 } 63 print("</ul>"); 64} 65?> 66<form action="index.php" method="post"> 67<ul> 68 <li><span>タスク名</span><input type="text" name="name" value="<?php if (isset($name)) { print($name); } ?>"></li> 69 <li><span>メモ</span><textarea name="memo"><?php if (isset($memo)) { print($memo); } ?></textarea></li> 70 <li><input type="submit" name="submit"></li> 71</ul></form> 72</body> 73</html>
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。