mysqli呼叫預存程序,傳入mysql總是亂碼。 (附操作流程、細節、截圖)
**越狱兔
**越狱兔 2019-07-22 15:35:41
0
3
1145

業務場景:php頁面呼叫mysql預存程序,有1個入參,1個出參。
出現問題:能正常執行,但入參資料庫後總是顯示亂碼。

PHP頁面程式碼如下

<head>
<meta charset="utf-8">
</head>
<?php
$conn = new MySQLi("数据库地址","数据库用户","密码","数据库名");
mysqli_query($conn,"SET NAMES utf8");
$info_name_cn='测试x201';
$info_name_cn=mb_convert_encoding($info_name_cn,'UTF-8');
$result=$conn->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"];
?>
<div>---|<?php echo $exeout_rows; ?>|<?php echo mb_detect_encoding($exeout_rows); ?>|---</div>


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的字元集�

**越狱兔
**越狱兔

全部回覆(2)
innocence

*.php檔案編碼問題

  • 回覆 對,非常感謝。現在已經搞定了。 我感覺是直接使用Notepad++複製貼上,造成.php檔案內編碼問題。 操作過程留一下給後面的東西吧(我是菜雞,大神請不要介意) 1.新建abc.txt文件,文件另存為utf8格式,修改名字為abc.php開啟。 2.將先前寫過的程式碼,以txt記事本打開,複製,貼上到abc.php檔案中。儲存關閉。 3.用軟體Notepad++開啟abc.php,「編碼」項目選擇UTF-8(避免出現BOM頭)。
    **越狱兔 作者 2019-07-27 15:12:50
流氓越狱兔

補充:同樣情況下,我將檔案儲存編碼方式改為ASCI,頁面代碼設定為GBK後運作正常。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!