前提・実現したいこと
HTML,PHPでセキュリティに問題あるTodoリストを作成しています。
下記の実装中にエラーが発生しました。」
発生している問題・エラーメッセージ
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1049] Unknown database 'mydb' in /home/ubuntu/public_html/index.php:2 Stack trace: #0 /home/ubuntu/public_html/index.php(2): PDO->__construct('mysql:host=loca...', 'root', '', Array) #1 {main} thrown in /home/ubuntu/public_html/index.php on line 2
該当のソースコード
<?php $pdo = new PDO('mysql:host=localhost;dbname=mydb;charset=utf8', 'root', '', [PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING]); if(isset($_POST['submit'])){ // Add on Item $name = $_POST['name']; $sth = $pdo->prepare('INSERT INTO todos (name) value("' . $name . '")'); $sth->execute(); }elseif(isset($_POST['delete'])){ $id = $_POST['id']; $sth = $pdo->prepare('DELETE FROM todos WHERE id= ' . $id); $sth->execute(); } ?> <!DOCTYPE html> <html> <head> <title>Todo List</title> <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic"> <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.css"> <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/milligram/1.3.0/milligram.css"> </head> <body class="container"> <h1>Todo List</h1> <?php $keyword = isset($_REQUEST['keyword']) ? $_REQUEST['keyword'] :''; $sth = $pdo->prepare('SELECT id,name FROM todos WHERE name like "%'. $keyword . '%"'); $sth->execute(); ?> <form method="POST"> <input type="text" name="name" value=""> <input type="submit" name="submit" value="add"> </form> <h2>Current Todos</h2> <form> Search: <input type="text" name="keyword" value=""> <input type="submit" name="search" value="Search"> </form> <table class="table table-striped"> <thead><th>Task</th><th></th></thead> <tbody> <?php foreach($sth as $row){ ?> <tr> <td><?= $row[1] ?></td> <td> <form method="POST"> <button type="submit" name="delete">Delete</button> <input type="hidden" name="id" value="<?= $row[0] ?>"> </form> </td> </tr> <?php } ?> </tbody> </table> </body> </html>試したこと
心当たりなし
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー