human
SQLSTATE [HY093]：無効なパラメーター数：バインドされた変数の数はトークンの数と一致しません
gpt
その理由の1つは、numrowsと呼ばれるバインディングを宣言できたかもしれないが、実際には何もバインドすることはないということかもしれません。
human
そして、どうすればこの間違いを解決できますか？
gpt
SQLクエリは、プレースホルダーにバインドする値の数と一致します。このエラーを解決するために従うことができるいくつかのステップを次に示します。

SQLステートメントを確認してください。SQLステートメントに、拘束力のある値に対して正しい数のプレースホルダーがあることを確認してください。

バインドされている値を確認してください。SQLステートメントのプレースホルダーの数に一致する正しい値の数があることを確認してください。

名前付きプレースホルダーを使用：質問マークをプレースホルダーとして使用する代わりに、名前のプレースホルダー（例：名前）を使用し、連想配列を使用してバインド値を使用できます。これにより、プレースホルダーと価値を簡単に追跡できます。

エラー処理を使用します。トライキャッチブロックを使用して、コードの実行中に発生する可能性のある例外をキャッチおよび処理します。これにより、エラーをより簡単に識別してデバッグできます。

例：
試す {
   $ stmt = $ pdo-> prepare（$ sql）;
   $ stmt-> execute（$ values）;
} catch（pdoexception $ e）{
   エコー「エラー：」。$ e-> getMessage（）;
}

これらの手順に従うことにより、PHPコードの「無効なパラメーター番号」エラーを解決できるはずです。
human
ありがとう、それはうまくいきました！しかし、今では別の問題があります。

突然、PHPからデータベースに接続しようとすると、次のエラーが発生します。

>接続エラー：SQLSTATE [HY000] [2054]サーバーは、クライアントに知られていない認証方法を要求しました

PHPはこのエラーを示す場合があります

>警告：mysqli_connect（）：サーバーは、d：\ xampp \ htdocs \ reg \ server.phpのクライアント[caching_sha2_password]にクライアントに不明な認証方法を要求しました10行10

この問題を修正するにはどうすればよいですか？