用户名:  密码:   
您当前的位置:首页 > SQL数据库 >  MySql > 

delphi11中使用FireDAC连接mysql上传字符串后半截乱码

上次修改时间: 2024-06-10 15:54:53      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\SQL数据库相关\mysql相关\      下一页

delphi11中使用FireDAC连接mysql上传字符串后半截乱码

解决方法
连接字符集不要用utf8或urf8mb4,改为gbk就正常了,或者用uniDAC

参考:
https://blog.csdn.net/u013339622/article/details/128261989?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-128261989-blog-128184886.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-128261989-blog-128184886.235%5Ev43%5Epc_blog_bottom_relevance_base4&utm_relevant_index=1

procedure TForm1.Button2Click(Sender: TObject);
var
  q1: TFDQuery;
begin
  FDConnection1.Params.DriverID := 'MySQL';
  FDConnection1.Params.Add('Server=localhost');
  FDConnection1.Params.Add('Port=3306');//默认端口可省略这行
  FDConnection1.Params.Database := 'ctcms';
  FDConnection1.Params.UserName := 'root';
  FDConnection1.Params.Password := 'root';
  //FDConnection1.Params.Add('CharacterSet=utf8');
  FDConnection1.Params.Add('CharacterSet=gbk');

  FDPhysMySQLDriverLink1.VendorLib := '.\..\..\libmysql.dll';

  FDQuery1.Connection := FDConnection1;

  q1 := TFDQuery.Create(nil);
  q1.Connection :=FDConnection1;

  try
    q1.SQL.Text := 'INSERT INTO ct_txthtml (title, html) VALUES (:title, :html)';
    q1.ParamByName('title').Value := '我是中国人';
    q1.ParamByName('html').Value := 'html';

    q1.ExecSQL; // 执行 SQL 语句插入数据
    ShowMessage('数据插入成功!');
  except
    on E: Exception do
    begin
      ShowMessage('数据插入失败:' + E.Message);
    end;
  end;

  q1.Free;
end;