iT邦幫忙

0

mysql stored procedure text 不給傳中文

  • 分享至 

  • twitterImage
create procedure sp_insertArticle(txt TEXT)

mysql stored procedure傳入參數txt型態為TEXT

但是傳中文的時候 call sp_insertArticle('我要中文')
報錯

Error Code: 1366. Incorrect string value: '\xE6\x88\x91\xE8\xA6\x81...' for column 'txt' at row 1	0.047 sec

我知道如果參數是varchar的話改成nvarchar就不會報Incorrect string value
但是沒有ntext這個型態啊
求救QQ

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
一級屠豬士
iT邦大師 1 級 ‧ 2020-07-25 23:45:03
最佳解答

請依照 rogeryao 建議修改 database 的 CHARACTER SET 與 DEFAULT COLLATE.
現在以utf8mb4為主流.支援較為完整.可以參考相關文件.
我補充一下 查詢現有的 設定的方式.

SELECT SCHEMA_NAME
     , DEFAULT_CHARACTER_SET_NAME
     , DEFAULT_COLLATION_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 ORDER BY SCHEMA_NAME;

+--------------------+----------------------------+------------------------+
| SCHEMA_NAME        | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME |
+--------------------+----------------------------+------------------------+
| information_schema | utf8                       | utf8_general_ci        |
| miku               | utf8mb4                    | utf8mb4_0900_ai_ci     |
+--------------------+----------------------------+------------------------+
2 rows in set (0.01 sec)

了解了~感謝

0
rogeryao
iT邦超人 8 級 ‧ 2020-07-25 22:42:19

設定 MYSQL 資料庫編碼為 UTF-8 :
MYSQL UTF-8
若使用 PHP 開發 :
PHP UFT-8

了解了~感謝

我要發表回答

立即登入回答