こんにちは、ボブです。
PHPでデータベース(MySQL)をあつかう場合
prepareを使い文字列をLIKE句で検索する際
「?」に対する記述をどうするか調べてみました。
<?php require_once('login_data.php'); ?>
<?php $_hensu = '';
if($_SERVER['REQUEST_METHOD'] === 'POST'){
$_hensu = htmlspecialchars($_POST[hensu]);} ?>
以下は<!DOCTYPE html>内
<?php
if ($_hensu != ""){
$stmt = $db->prepare("SELECT * FROM datatable WHERE hensu LIKE ?");
$stmt->execute(['%'.$hensu.'%']);
$records = $stmt->fetchALL(PDO::FETCH_ASSOC);
foreach ($records as $record) { ?>
<table>
<tr>
<td><?= $record['hensu'];</td>
</td>
</table>
?>
'%'.$hensu.'%' つまり
% + . + 変数 + . + % となるわけです。
*
「%」・・・LIKE句に必須
「.」 ・・・phpでの文字列連結
コメント
phpの掲示板で検索機能を作っていて1週間くらいわからず困っていました。この方法で、できましたありがとうございました。