我有一个存储过程如下:
CREATE PROCEDURE `test`(
IN inTag varchar(767) -- Hashtag
)
BEGIN
SET NAMES 'utf8mb4';
INSERT INTO test_table (s)
VALUES (inTag);
END
我尝试致电:
call registration.HT_test('fanart');
但返回
警告1300无效的utf8mb4字符串:“ fanart ...” 1366错误的字符串值:“ \ xF0 \ x9F \ x8E \ xA8”。
我认为问题在于参数,但我不知道如何解决。
我的项目正在使用NodeJS,并将数据发送到MySQL存储过程。请告诉我如何解决此问题?
答案 0 :(得分:1)
您需要为参数定义字符集:
CREATE PROCEDURE `test`(
IN inTag varchar(767) CHARACTER SET utf8mb4
)
BEGIN
INSERT INTO test_table (s)
VALUES (inTag);
END