ビジネス シナリオ: PHP ページは、1 つの入力パラメーターと 1 つの出力パラメーターを持つ mysql ストアド プロシージャを呼び出します。
問題点: 正常に実行できるのですが、データベースにパラメータを入力すると必ず文字化けが表示されます。
PHP ページのコードは次のとおりです
query("CALL x2('$info_name_cn',@exeout_rows)"); $result=$conn->query("SELECT @exeout_rows"); $recordset=mysqli_fetch_assoc($result); $exeout_rows=(int)$recordset["@exeout_rows"]; ?>---|||---
mysql ストアド プロシージャのコードは次のとおりです
CREATE DEFINER=`数据库名`@`%` PROCEDURE `x2`( IN exein_info_name_cn VARCHAR(5) ,OUT exeout_rows int ) BEGIN set exeout_rows=1; insert into 测试表 ( info_name_cn ) values ( exein_info_name_cn ); END
mysql データベースでは、テストテーブルは「utf8/utf8_ganaral_ci」、文字セットとテストテーブルの内部フィールド info_name_cn の文字セット
*.phpファイルのエンコードの問題
補足:同じ状況で、ファイル保存時のエンコード方式をASCIに変更したところ、GBKに設定するとページコードが正常に動作しました。