PHP7からPHP8への移行に伴うエラーについて
解決したいこと
mysqlとPHP7にてデータベースを作成していましたが、PHP8への対応作業を始めています。
この過程においてエラーが発生しました。
PHP7では動作していたのですがPHP8では動作しません。いくつか原因があるようですが特定できず困っています。
おそらく根本的なミスだとは思うのですが、どうかご教示いただけますと幸いです。
発生している問題・エラー
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in test4034.php(30): PDOStatement->execute() #1 {main} thrown in test4034.php on line 30
該当するソースコード
<?php
$number = $_GET["番号"];
$sql = "SELECT 番号, 更新日, 内容 FROM 更新履歴 WHERE 番号 = $number";
$stmt = $dbh->prepare($sql);
$stmt->bindValue(':番号', $_GET["番号"], PDO::PARAM_INT);
$stmt->execute(); //ここが怪しい
$member = $stmt->fetch(PDO::FETCH_OBJ);
?>
<form action="test4035.php" method="post">
<table>
<tr>
<td valign="top"><input type="text" size = 2 name="number" placeholder="番号" value="<?php print($member->番号) ?>"></td>
<td valign="top"><input type="text" size = 10 name="day" placeholder="更新日" value="<?php print($member->更新日) ?>"></td>
<td valign="top"><textarea type="text" cols=80 rows=3 name="item" placeholder="内容"><?php print($member->内容) ?></textarea></td>
</tr></table>
<button id="send" type="submit">データベースを更新</button><input type="button" onclick="history.back()" value="戻る">
</form>
自分で試したこと
ソースコード中、「ここが怪しい」と記載してる部分でエラーが発生しているようで、エラーの表示が出るのみです。
試しに該当する一文を削除すると一応の表示が出るのですが、それぞれの入力項目にまたエラーの表示が出てきます。
0