Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không thể chèn ký tự Trung Quốc vào MySQL

Sử dụng UTF-8 khi bạn tạo bảng.

create table table_name () CHARACTER SET = utf8;

Sử dụng UTF-8 khi bạn chèn vào bảng

set username utf8; INSERT INTO table_name (ABC,VAL);

Đọc thêm

Và hơn thế nữa

Mã chi tiết

Mã dưới đây là mã thử nghiệm, vui lòng thực hiện các thao tác sau của nó.

Nếu bạn đã tạo cơ sở dữ liệu, vui lòng ALTER nó như mã dưới đây Và nếu bạn chưa tạo cơ sở dữ liệu thì hãy tạo nó và đặt Collation thành utf8_unicode_ci

Và tương tự đối với bảng, hãy xác định Collation là "utf8_unicode_ci" cho các trường trong bảng mà bạn muốn lưu trữ các ký tự chines.

ALTER DATABASE `stackoverflow` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE TABLE `stackoverflow`.`chines`
(
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `words` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
) ENGINE = InnoDB;
<?php

    define('HOSTNAME', 'localhost');
    define('USERNAME', 'root');
    define('PASSWORD', '');
    define('DATABASE', 'stackoverflow');

    $dbLink = mysql_connect(HOSTNAME, USERNAME, PASSWORD)or die(mysql_error());
    mysql_query("SET character_set_results=utf8", $dbLink)or die(mysql_error());
    mb_language('uni'); 
    mb_internal_encoding('UTF-8');
    mysql_select_db(DATABASE, $dbLink)or die(mysql_error());
    mysql_query("set names 'utf8'",$dbLink)or die(mysql_error());

    if(isset($_POST['addWord']))
    {
        mysql_query("SET character_set_client=utf8", $dbLink)or die(mysql_error());
        mysql_query("SET character_set_connection=utf8", $dbLink)or die(mysql_error());

        $sql_query = "INSERT INTO chines(words) VALUES('".$_POST['words']."')";
        mysql_query($sql_query, $dbLink)or die(mysql_error());
    }

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title></title>
</head>
<body>
    <?php
        mysql_query("SET character_set_results=utf8", $dbLink);
        $sql_query = "SELECT * FROM chines";
        $dbResult = mysql_query( $sql_query, $dbLink)or die(mysql_error());

    ?>

    <form action="" method="post">

        <p>Word : <input type="text" name="words" /></p>
        <p><input type="submit" name="addWord" /></p>

    </form>
    <?php
        while($row = mysql_fetch_assoc($dbResult))
        {
            echo $row['words']. '<br />';
        }
    ?>
</body>
</html>

Xem kết quả và hình ảnh từng bước như bên dưới.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi .Net MySql Khóa đã cho không có trong từ điển

  2. LỖI 1366 (HY000):Giá trị chuỗi không chính xác:'\ xF0 \ x9F \ x98 \ x9C' cho cột 'nhận xét' ở hàng 1

  3. Nhận id của một hàng khi KEY DUY NHẤT bị vi phạm

  4. Ai đó có thể giới thiệu một hướng dẫn tốt về các chỉ mục MySQL, đặc biệt khi được sử dụng theo thứ tự theo mệnh đề trong một phép nối không?

  5. Làm cách nào để hiển thị Mảng đa chiều được chèn vào bảng MySQL?