sql >> Database teknologi >  >> RDS >> Mysql

Kan ikke indsætte kinesisk tegn i MySQL

Brug UTF-8 når du opretter tabel.

create table table_name () CHARACTER SET = utf8;

Brug UTF-8 når du indsætter i tabellen

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

Læs mere

Og mere

Detaljeret kode

Nedenstående kode er testet kode, gør venligst følgende, dens værker.

Hvis du allerede har oprettet databasen, skal du ÆNDRE den som nedenstående kode. Og hvis du ikke har oprettet databasen, så opret den og sæt Collation til utf8_unicode_ci

Og det samme for tabel definerer Collation som "utf8_unicode_ci" for tabelfelter, hvor du vil gemme chines-tegn.

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>

Se resultatet og trinvisuelt som nedenfor.



  1. TO_CHAR af en Oracle PL/SQL TABLE-type

  2. Hvordan forbinder man to tabeller i en UPDATE-sætning?

  3. Importer CSV-fil direkte til MySQL

  4. MySQL OPRET TABEL, HVIS IKKE FINDER -> Fejl 1050