简体   繁体   English

连接到mssql后utf-8无法插入mysql

[英]utf-8 cannot insert to mysql after connection to mssql

first of all , I connected two database -mssql & mysql- . 首先,我连接了两个数据库-mssql和mysql-。

 global $link,$link_voip;
    $link = mssql_connect('A', 'B', 'C');
    mssql_select_db('D', $link);
    if (!$link) {
        die('Something went wrong while connecting to MSSQL');
    }
    $link_voip = mysql_connect('E','F','G') or die("err");

mysql_query("SET NAMES 'utf8'", $link_voip);
mysql_query("SET CHARACTER SET 'utf8'", $link_voip);
mysql_query("SET character_set_connection = 'utf8'", $link_voip);
mysql_select_db('voip', $link_voip);

I want to update a row on mysql database with mssql's information: I get information correctly , but mysql database cannot insert utf-8 (persian language). 我想用mssql的信息更新 mysql数据库上的一行:我正确地获取了信息,但是mysql数据库无法插入utf-8 (波斯语)。
I'm working with phpmyadmin ,I used to try: 我正在使用phpmyadmin ,我曾经尝试过:
1- change collation to utf_general_ci 1-将归类更改为utf_general_ci
2- add 2添加

mysql_query("SET NAMES 'utf8'", $link_voip);
mysql_query("SET CHARACTER SET 'utf8'", $link_voip);

before query. 查询之前。
3-add N before variable that may be changed. 在可能更改的变量前加3N。

    $q="UPDATE cc_card SET  firstname=N'$fname' , lastname=N'$lname',phone='$phone',credit='$credit' 
    WHERE id='$id'";

but still it doesn't work. 但仍然不起作用。

1- in mssql : 1-在mssql中
1-1. 1-1。 check table type is nvarchar 检查表类型为nvarchar
1-2. 1-2。 convert to varbinary (CONVERT(varbinary(MAX),tblname) 转换为varbinary(CONVERT(varbinary(MAX),tblname)
1-3. 1-3。 use bin2hex 使用bin2hex
1-3. 1-3。 use chr(hexdec$varibale) 使用chr(hexdec $ varibale)
1-5. 1-5。 use iconv 使用iconv
2- in mysql : use N before variable for update/insert in database 2-在mysql中 :在变量前使用N进行更新/插入数据库

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM