【PHP x MySQL入門】 - はじめてのPHPとMySQLデータベースWeb開発チュートリアル
を元に、自分のmac環境で全く同じものを作ろうとしていますが、うまくいきません。
※Paiza環境ではできています。
原因と解決策がどうしてもわからず、ご教示ください。
エラー内容もよく理解できていませんので、教えていただきたく。
php
1<?php 2 $pdo = new PDO("mysql:host=localhost;dbname=mydb;charset=utf8","root","", [PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING]); 3 4 if(isset($_POST['submit']) ){ 5 $name = $_POST['name']; 6 $sth = $pdo->prepare("INSERT INTO todos (name) VALUES (:name)"); 7 $sth->bindValue(':name', $name, PDO::PARAM_STR); 8 $sth->execute(); 9 }elseif(isset($_POST['delete'])){ 10 $id = $_POST['id']; 11 $sth = $pdo->prepare("delete from todos where id = :id"); 12 $sth->bindValue(':id', $id, PDO::PARAM_INT); 13 $sth->execute(); 14 } 15?> 16 17<!DOCTYPE HTML> 18<html lang="ja"> 19<head> 20 <title>Todo List</title> 21 <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic"> 22 <link rel="stylesheet" href="//cdn.rawgit.com/necolas/normalize.css/master/normalize.css"> 23 <link rel="stylesheet" href="//cdn.rawgit.com/milligram/milligram/master/dist/milligram.min.css"> 24</head> 25 26<body class="container"> 27 <h1>Todo List</h1> 28 <form method="post" action=""> 29 <input type="text" name="name" value=""> 30 <input type="submit" name="submit" value="Add"> 31 </form> 32 <h2>Current Todos</h2> 33 <table class="table table-striped"> 34 <therad><th>Task</th><th></th></therad> 35 <tbody> 36<?php 37 $sth = $pdo->prepare("SELECT * FROM todos ORDER BY id DESC"); 38 $sth->execute(); 39 40 foreach($sth as $row) { 41?> 42 <tr> 43 <td><?= htmlspecialchars($row['name']) ?></td> 44 <td> 45 <form method="POST"> 46 <button type="submit" name="delete">Delete</button> 47 <input type="hidden" name="id" value="<?= $row['id'] ?>"> 48 <input type="hidden" name="delete" value="true"> 49 </form> 50 </td> 51 </tr> 52<?php 53 } 54?> 55 </tbody> 56 </table> 57</body> 58</html> 59
MySQL
1create database mydb; 2create table todos(id int auto_increment primary key not null, name text); 3
エラー内容
Fatal error: Uncaught PDOException: PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] in /usr/local/var/www/php/dir1/index.php:2 Stack trace: #0 /usr/local/var/www/php/dir1/index.php(2): PDO->__construct('mysql:host=loca...', 'root', '', Array) #1 {main} Next PDOException: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client in /usr/local/var/www/php/dir1/index.php:2 Stack trace: #0 /usr/local/var/www/php/dir1/index.php(2): PDO->__construct('mysql:host=loca...', 'root', '', Array) #1 {main} thrown in /usr/local/var/www/php/dir1/index.php on line 2
回答1件
あなたの回答
tips
プレビュー