当前位置: 首页 > 面试题库 >

无法将中文字符插入MySQL

左丘智渊
2023-03-14
问题内容

Cookie是使用big5集编码的,因此无法插入MySQL。您能帮我解决这个问题吗?

字段:username是eng,date1是日期,reason1是汉字。

$reason1 = $_COOKIE["reason"];
$sql2="INSERT INTO 
    attendance_count(username,date,count_time,appendix) 
    VALUES ('$username','$date1','0','$reason1')";
mysql_query($sql2);

问题答案:

创建表时使用 UTF-8

create table table_name () CHARACTER SET = utf8;

插入表格时使用 UTF-8

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

阅读更多

和更多

详细代码

下面的代码是经过测试的代码,请执行以下工作。

如果您已经创建了数据库,请按以下代码更改它。如果没有创建数据库,则创建数据库并将Collat​​ion设置为utf8_unicode_ci

与表相同,对于要在其中存储chines字符的表字段,将归类定义为“ utf8_unicode_ci”。

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>

查看结果,并按照以下步骤进行操作。

在此处输入图片说明



 类似资料:
  • 问题内容: 使用JDBC驱动程序从Java中的oracle中读取oracle阿拉伯字符时遇到问题,主要问题是我找不到正确的字符编码来获取正确的数据,但是我使用此方法手动解决了问题: 此方法可以给我正确的字符,如数据库中显示的那样,但是当我尝试更新/插入阿拉伯数据时,它将保存错误的字符。例如:我的文本在数据库中另存为“ ?????????” 而不是“مرحبا”。 这是我连接到oracle数据库的方

  • 问题内容: 我想在Python中将变量引入字符串中。 例如,看下面的脚本。我只是想为图像起个名字,例如…到,或者如果您使用会计师,因为我可以替换部分价值链以生成计数器。 问题答案: data = self.cmd(“r.out.gdal in=rdata out=geo{0}.tif”.format(i)) self.dataOutTIF.setValue(“geo{0}.tif”.format(

  • 我正在创建临时文件(outputFile)并使用BufferedWriter编写文本。我没有例外。但是字符串没有附加。我也使用sysout来输出文件,但它什么也不打印。 请帮忙 提前感谢

  • 问题内容: 当我尝试将俄语文本插入MySQL数据库时,它会像这样插入:г??????????????? ?? ????????? Рісѓрїр°ріс‹рїр°с‹рір°рї 因此,我有两个页面:registration.php和addUser.php。在每个 数据库由11个表组成,每个表都有排序规则:utf8_general_ci,类型:MyISAM。每个表中的每个字段都具有排序规则:utf

  • Hy, 我为数据库创建了以下3个表: ); 我有以下存储过程 C#代码: 但在我将数据插入使用上述代码的表单后,我得到了以下错误: 无法将值NULL插入列User_Id...... PLATFORM. MDF. dbo. Buyer;列不允许空值。INSERT失败。 无法将值NULL插入列Type_Id,表... PLATFORM. MDF. dbo. User;列不允许空值。INSERT失败。

  • insertText(int $row, int $column, string|int|double $data[, string $format, resource $formatHandler]) int $row $excel = new \Vtiful\Kernel\Excel($config); ​ $textFile = $excel->fileName("free.xlsx")