mysqlのdataをsearch

%e7%84%a1%e9%a1%8c

<!doctype html>
<html>
<head>
  <title>検索画面</title>
  <meta charset="utf-8">
</head>
<body>
  <h1>検索画面</h1>

<form action="pdo_search.php" method="post">
  検索用語を入力:<input type="text" name="yourname">
<input type="submit" value="検索する">
</form>

</body>
</html>

%e7%84%a1%e9%a1%8c
mysqlのテーブルからfetch

<?php
header("Content-type: text/html; charset=utf-8");

if(empty($_POST)){
  header("Location: pdo_search_form.html");
  exit();
} else {
  //名前入力判定
  if(!isset($_POST&#91;'yourname'&#93;) || $_POST&#91;'yourname'&#93; === ""){
    $errors&#91;'name'&#93; = "名前が入力されていません。";
  }
}

if(count($errors) === 0){
  $dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
  $user = 'dbuser';
  $password = 'xxxx';

  try {
    $dbh = new PDO($dsn, $user, $password);
    $statement = $dbh->prepare("select * from rss where title LIKE (:title)");

    if($statement){
      $yourname = $_POST['yourname'];
      $like_yourname = "%".$yourname."%";
      //プレースホルダへ実際の値を設定
      $statement->bindValue(':title',$like_yourname, PDO::PARAM_STR);

      if($statement->execute()){
        //レコード件数取得
        $row_count = $statement->rowCount();

        while($row = $statement->fetch()){
          $rows[] = $row;
        }
    } else {
      $errors['error'] = "検索失敗しました。";
    }
    $dbh = null;
  }
}catch (PDOException $e){
  print('Error:'.$e->getMessage());
  $errors['error'] = "データベース接続失敗しました。";
}

}
?>

<!doctype html>
<html>
<head>
  <title>検索結果</title>
  <meta charset="utf-8">
</head>
<body>

<?php if (count($errors) === 0): ?>

<p><?=htmlspecialchars($yourname, ENT_QUOTES, 'utf-8')."さんで検索しました。"?></p>
<p><?=$row_count?>件です。</p>

<table border='1'>
  <tr><td>id</td><td>title</td></tr>

<?php
foreach($rows as $row){
?>
<tr>
  <td><?=$row&#91;'id'&#93;?></td>
  <td><?=htmlspecialchars($row&#91;'title'&#93;,ENT_QUOTES,'utf-8')?></td>
</tr>
<?php
}
?>

<?php elseif(count($errors) > 0): ?>
<?php
  foreach($errors as $value){
    echo "<p>".$value."</p>";
  }
?>
<?php endif; ?>

</body>
</html>