怎么更改mysql创建表时varchar字段默认编码为utf-8

我用的mysql版本5.7.16,数据库表由hibernate映射自动创建
但是创建后的表,编码如下图所示,为latin1,每次都要对每个字段重新更改编码为UTF-8
有没有什么办法让表创建时,其字符字段的编码为utf-8
图片说明

我在my.ini文件中,对字符进行了配置,现在的字符编码如下,但是表格创建的时候,字符字段的编码依然是latin1图片说明

5个回答

问题解决:在my.ini文件中配置
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
可设置DB,server,client以及conn的编码为utf-8
但是如果创建数据库时候,假设创建名为test的数据库,没有指定编码,而是采用默认的编码,则%MYSQL_HOME%/data/fish中有一个dp.opt文件
编辑该文件可设置编码,将该文件做如下设置:
default-character-set=utf8
default-collation=utf8_general_ci
此时再在test中建表,表的字符字段默认的就是utf-8了
至此,问题解决

yu766588220
花公子丶 纠正:由于数据库是test,所以db.opt文件的目录应该是%MYSQL_HOME%/data/test才对(这个目录里还存放你创建的表文件)。而%MYSQL_HOME%/data里面则存放这数据库的数据,里面除了有test数据库,还有sys等数据库
3 年多之前 回复

你把数据库的编码设置为utf-8就好

SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;

yu766588220
花公子丶 有没有把这些指令写到文件里这样的方法,因为这样下次重启mysql服务不必再键入这些指令
3 年多之前 回复

你在建库的时候有个选择编码格式的选项你没选吧。。。

yu766588220
花公子丶 没有建库,这是解压版的,配置了一下,不过不知道编码怎么配置
3 年多之前 回复

一楼是设定默认没编码方式,也可以在建表时设定
CREATE TABLE emp(
id int,
name VARCHAR(30)
)DEFAULT CHARSET=utf8;

yu766588220
花公子丶 hibernate映射创建的表,怎么加DEFAULT CHARSET=utf8。。。
3 年多之前 回复

1.创建数据库
mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;
2.创建表
mysql>create table my_table (name varchar(20) not null default '')type=myisam default charset utf8;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
具有UTF-8编码的页面使用UTF-8编码将数据发送到MySQL,但是条目被加扰

<div class="post-text" itemprop="text"> <p>I realize there's a dozen similar questions, but none of the solutions suggested there work in this case.</p> <p>I have a PHP variable on a page, initialized as:</p> <pre><code>$hometeam="Крылья Советов"; //Cyrrilic string </code></pre> <p>When I print it out on the page, it prints out correctly. So <code>echo $hometeam</code> displays the string Крылья Советов, as it should.</p> <p>The content meta tag in the header is set as follows:</p> <pre><code>&lt;META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"&gt; </code></pre> <p>And, at the very beginning of the page, I have the following (as suggested in one of the solutions found in my search):</p> <pre><code>ini_set('default_charset', 'utf-8'); </code></pre> <p>So that should be all good.</p> <p>The MySQL table I'm trying to save this to, and the column in question, have utf8_bin as their encoding. When I go to phpMyAdmin and manually enter Крылья Советов, it saves properly in the field.</p> <p>However, when I try to save it through a query on the page, using the following basic query:</p> <pre><code>mysql_query("insert into tablename (round,hometeam) values ('1','$hometeam') "); </code></pre> <p>The mysql entry looks like this:</p> <pre><code>c390c5a1c391e282acc391e280b9c390c2bbc391c592c391c28f20c390c2a1c390c2bec390c2b2c390c2b5c391e2809ac390c2bec390c2b2 </code></pre> <p>So what's going on here? If everything is ok on the page, and everything is ok with MySQL itself, where is the issue? Is there something I should add to the query itself to make it keep the string UTF-8 encoded?</p> <p>Note that I have set <code>mysql_set_charset('utf8');</code> after connecting to the database (at the top of the page).</p> <p>EDIT: Running the query <code>SHOW VARIABLES LIKE "%character_set%"</code> gives the following:</p> <pre><code>Variable_name Value character_set_client utf8 character_set_connection utf8 character_set_database latin1 character_set_filesystem binary character_set_results utf8 character_set_server latin1 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ </code></pre> <p>Seems like there could be something here, since there are 2 latin1's in that list. What do you think?</p> <p>Also, when I type a Cyrillic string directly into phpMyAdmin, it appears fine at first (it displays correctly after I save it). But reloading the table, it displays in HEX like the inserted ones. I apologize for the misinformation regarding this in the question. As it turns out, this should mean the problem is with phpMyAdmin or the database itself.</p> <p>EDIT #2: this is what <code>show create table tablename</code> returns:</p> <pre><code>CREATE TABLE `tablename` ( `id` int(11) NOT NULL AUTO_INCREMENT, `round` int(11), `hometeam` varchar(32) COLLATE utf8_bin NOT NULL, `competition` varchar(32) CHARACTER SET latin1 NOT NULL DEFAULT 'Russia', PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=119 DEFAULT CHARSET=utf8 COLLATE=utf8_bin </code></pre> </div>

无法将Latin1转换为utf-8? 不是编码员

<div class="post-text" itemprop="text"> <p>I live in the US, wanting to set up a website using <strong>cPanel</strong>. I bought a <strong>InstaWebsite</strong> that's written in <em>Latin1</em> (England)(this is supposed to be an option in the Character Set of Files list) and need it translated to UTF-8. </p> <p>I try to import the file “<em>store database.text</em>” and nothing happens but an empty file is created(&amp;Latin1 is not an option). Can anyone help? Are there any easy fixes.</p> <p>I spoke w/a tech person that hosts my domain on <strong>InMotionHosting</strong>. I He suggested asking you for help. I don't know how to code. I also sent an email to the fellow I bought this from – he’s in England &amp; am waiting for help from him. </p> <p>This is what it does when I try to import using <strong>UTF-8</strong>:</p> <p><strong>SQL query:</strong></p> <pre><code>CREATE TABLE `address_book` ( `address_book_id` INT( 11 ) NOT NULL AUTO_INCREMENT , `customers_id` INT( 11 ) NOT NULL DEFAULT '0', `entry_gender` CHAR( 1 ) NOT NULL DEFAULT '', `entry_company` VARCHAR( 32 ) DEFAULT NULL , `entry_firstname` VARCHAR( 32 ) NOT NULL DEFAULT '', `entry_lastname` VARCHAR( 32 ) NOT NULL DEFAULT '', `entry_street_address` VARCHAR( 64 ) NOT NULL DEFAULT '', `entry_suburb` VARCHAR( 32 ) DEFAULT NULL , `entry_city` VARCHAR( 32 ) NOT NULL DEFAULT '', `entry_state` VARCHAR( 32 ) DEFAULT NULL , `entry_postcode` VARCHAR( 10 ) NOT NULL DEFAULT '', `entry_country_id` INT( 11 ) NOT NULL DEFAULT '0', `entry_zone_id` INT( 11 ) NOT NULL DEFAULT '0', PRIMARY KEY ( `address_book_id` ) , KEY `idx_address_book_customers_id` ( `customers_id` ) ) TYPE = MYISAM AUTO_INCREMENT =100; </code></pre> <p><strong>MySQL said:</strong> </p> <blockquote> <p>1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM AUTO_INCREMENT=100' at line 17</p> </blockquote> </div>

ssh2应用中统一设置成utf-8之后还会出现乱码问题?

[size=medium]这里我使用的是struts2.0 Hibernate3.2 spring2.0 mysql5.0的配置,容器选择Tomcat6.0; 下面我们使用的是get的方式提交form表单所出现的情况: 前台页面使用: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../documentTabSideBar.jsp"%> ... 涉及的表单: <%@ include file="../title.jsp" %> 下面我先使用默认的get方式提交进行测试: <form action="addDocumentCatalog.action" id="submitInfo" name="submitInfo" onsubmit="return validate()"> ... <input name="title" type="text" size="40"> <%@ include file="../documentTabSideBar.jsp"%>这个页面的头部设置: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <Meta http-equiv="progma" content="no-cache"> <title></title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <%@ include file="css/css_all.css" %> Action的代码: public class AddDocumentCatalog extends ActionSupport { ... private String title; ... @Override public String execute() throws Exception { //这里我做了打印测试: System.out.println(title); ... this.service.saveDocumentCatalog(bean); DAO层的实现: public class DocumentCatalogDAOImpl extends HibernateDaoSupport implements DocumentCatalogDAO { public void saveDocumentCatalog(DocumentCatalog bean) { { //这里我做了打印测试: System.out.println(bean.getName()); this.getHibernateTemplate().save(bean); } Spring ioc配置: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/langsinoa?useUnicode=true&amp;characterEncoding=UTF-8"></property>... </bean> 到浏览器进行测试:输入“中文”两个字: 得到的请求url信息: http://localhost:8080/oa/DocumentCatalog/addDocumentCatalog.action?type=1&parentId=-1&choice=directory&title=%E4%B8%AD%E6%96%87&title2=&description=&address= 这里的title就是乱码? 得到的Console显示: ?????? ?????? //这里输出的测试结果!就是无法显示的!为什么? firebug截图: [img]http://dl.iteye.com/upload/attachment/0065/3366/f71dcfaf-a3b0-339d-8332-b28bb6c1c1f3.jpg[/img] Hibernate: select max(id) from documentcatalog Hibernate: insert into langsinoa.documentcatalog (name_, date_, flag_, authorId_, authorName_, type_, order_, content_, address_, parentId_, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 之后我将from的Method设置为post: 其他设置不变,出现的状况: [img]http://dl.iteye.com/upload/attachment/0065/3368/1620f803-ce73-398d-b501-360e86bd1249.jpg[/img] Console: 中文 中文 Hibernate: insert into langsinoa.documentcatalog (name_, date_, flag_, authorId_, authorName_, type_, order_, content_, address_, parentId_, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 虽然得到了中文,但是回到db: mysql> select name_ from documentcatalog; +--------------------+ | name_ | +--------------------+ | one | | 盲赂颅忙聳聡 | | into! | | 盲赂颅忙聳聡茂录聛 | | 盲赂颅忙聳聡 | | en | | en | | 涓枃 | | 盲赂颅忙聳聡 | | 盲赂颅忙聳聡 | | 盲赂颅忙聳聡 | | 涓枃 | +--------------------+ 12 rows in set (0.00 sec) 还是乱码: db的编码设置方式: 首先是表: | documentcatalog | CREATE TABLE `documentcatalog` ( `id` bigint(20) NOT NULL, `name_` varchar(50) default NULL, ... PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | 下面是这个sb的default设置: mysql> show variables like '%char%'; +--------------------------+------------- -----+ | Variable_name | Value | +--------------------------+------------- -----+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\Program F ets\ | 统一的是utf-8 我实在是没法了! 请大家帮忙解决一下! 谢谢!谢谢! [/size]

mysql创建表,默认系统当前时间

CREATE TABLE `tmp_webservice_sql_log` ( `ID` INT(10) NOT NULL AUTO_INCREMENT, `SEND_DATA_TIME` DATETIME DEFAULT NULL, `SEND_STATE` VARCHAR(10) DEFAULT NULL, `INTER_NAME` VARCHAR(100) NOT NULL, `CREATE_TIME` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `QUERY_SQL` TEXT, `SEND_JSON` LONGTEXT, `RETURN_JSON` VARCHAR(2000) DEFAULT NULL, `SYS` TINYINT(2) DEFAULT NULL, PRIMARY KEY (`ID`,`INTER_NAME`,`CREATE_TIME`) ) ENGINE=INNODB AUTO_INCREMENT=343 DEFAULT CHARSET=utf8 create_time 字段和 QUERY_SQL字段SEND_JSON字段 报错

mysql8报错 [42000][1064] ,使用DATE_FORMAT做为返回值的时候出错,字符集已经默认是UTF-8

``` delimiter $ create function newdate() returns varchar (20) begin return DATE_FORMAT(NOW(),'%m-%d-%Y'); end $ ``` 创建函数,系统报错 [2020-03-15 14:45:49] [42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'return DATE_FORMAT(NOW(),'%m-%d-%Y')' at line 1

编码地狱。 Mysql,php和utf-8

<div class="post-text" itemprop="text"> <p>Performing a query comparing phrases is a pain in the ass. Look the following configuration to understand my problem.</p> <hr> <p><strong>sql.sql</strong></p> <pre><code>create user "myStore"@"localhost" identified by "1234"; grant all privileges on myStore.* TO "myStore"@"localhost"; create database myStore character set utf8 collate utf8_general_ci; use myStore; create table item ( item_id integer not null, name varchar(60) not null, primary key (item_id) ); alter table item engine=innodb default charset=utf8 collate=utf8_bin; insert into item (item_id, name) values (0, "apple"), (1, "maça"); </code></pre> <p><strong>my.cnf</strong></p> <pre><code>[mysqld] collation-server = utf8_unicode_ci character-set-server = utf8 </code></pre> <p><strong>mysql&gt; SHOW VARIABLES LIKE 'collation%';</strong></p> <pre><code>+----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | | collation_database | utf8_unicode_ci | | collation_server | utf8_unicode_ci | +----------------------+-----------------+ </code></pre> <p><strong>mysql&gt; SHOW VARIABLES LIKE 'character_set%';</strong></p> <pre><code>+--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ </code></pre> <p><strong>index.php</strong></p> <pre><code>&lt;?php try { header ('Content-Type: text/html; charset=utf-8'); $mysqli = new mysqli ("localhost", "myStore", "1234", "myStore"); if ($mysqli-&gt;connect_error) throw new exception ("Error (" . $mysqli-&gt;connect_errno . "). " . $mysqli-&gt;connect_error); $sql = $mysqli-&gt;prepare ("select item_id, name from item where name = '" . utf8_decode ("maça") ."'"); if (! $sql) throw new exception ($mysqli-&gt;error); $sql-&gt;execute (); $sql-&gt;bind_result ($item_id, $name); while ($sql-&gt;fetch ()) echo $item_id . " - " . utf8_encode ($name); $sql-&gt;close (); } catch (exception $e) { echo $e; } ?&gt; </code></pre> <hr> <h3>As you can see, I MUST decode the string before sending it to MySQL and then encode it again.</h3> <p>I really don't know what is wrong, is there a way to avoid those encoding and decoding functions ? Thanks.</p> </div>

我是否真的需要在Mysql和PHP中从VARCHAR切换到VARBINARY以获取UTF-8?

<div class="post-text" itemprop="text"> <p>Do I really need to switch from VARCHAR to VARBINARY and TEXT to BLOB for UTF-8 in Mysql &amp; PHP? Or can I stick with CHAR/TEXT fields in MySQL?</p> </div>

mysql创建表时,对字段如何限制其位数?

例如: CREATE TABLE clients( Un VARCHAR(10) UNIQUE, Pwd VARCHAR(6), na VARCHAR(15) ); 要想Pwd只能是3-6位 怎么设置?

为什么mysql中varchar字段和int字段对比是否相等不会出错?

a.`b_ids` = b.`id` 前面一个字段是varchar类型的,保存的是用逗号隔开的数字,型如1,2,3 后面一个字段是int类型的,两个字段对比是否相等时没有报错,好像取了前一个字段的第一个值做比较

关于 int 字段插入varchar字段问题

我想把A表 ID (int字段自动增长 ) 插入到B表 Ids(varchar50字段)格式为(1,2,3,4) 这样的插入语句得怎么写,还有就是通过b表的ids里面的数据查询对应的A表数据这个查询语句,求指导,或者是将A表ID的内容在插入的时候自动赋值到A表Ids中

mysql创建表时输入中文表名显示ERROR 1064 (42000)

![图片说明](https://img-ask.csdn.net/upload/201901/20/1547975587_342108.jpg) 请问这种情况应该怎么处理? ----------------------------------------------------------------------------- 问题补充:针对回答的补充 我试了你的方法,不是换行的问题,是指令里包含中文就会报错,如图 ![图片说明](https://img-ask.csdn.net/upload/201901/21/1548052879_548697.jpg)![图片说明](https://img-ask.csdn.net/upload/201901/21/1548052885_757505.jpg)

如何使用PHP在一个独特的MySQL列中存储UTF-8电子邮件地址?

<div class="post-text" itemprop="text"> <p>I'm trying to support UTF-8 characters into email addresses. If I understand correctly, email addresses are limited to <a href="https://en.wikipedia.org/wiki/Email_address" rel="nofollow">254 usable (ASCII) characters</a>. Based on this, I would like to store email address in a VARCHAR(254) ASCII MySQL InnoDB column. One of the problems I'm encountering is to validate such scenarios. I'm trying to convert UTF-8 to ASCII but getting mixed results as shown below (I know the example is not a valid email but I could have used other characters - this is just to explain the problem):</p> <pre><code>&lt;?php $string = '

MYSQL数据库表字段类型varchar改成double如何才能不丢失精度

MYSQL数据库表字段类型varchar改成double如何才能不丢失精度, 因为varchar里面之前都是存的double数据,但是忘记修改类型了, 现在直接修改类型把varchar改成double会丢失精度, 比如:123.45 修改成double后 就变成 123.0了 如何才能修改类型又不丢失精度, 因为我要做sum查询总数,为varchar的话 查询结果会有问题!

创建MYSQL表时的日期时间和时间戳问题

<div class="post-text" itemprop="text"> <p>I am trying to create mysql table in PhpMyAdmin in Hostgator server with the following information but it is showing error </p> <pre><code>Error : #1067 - Invalid default value for 'CreatedDate' </code></pre> <p>Table </p> <pre><code> CREATE TABLE `tbl_sample` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Domain` varchar(100) DEFAULT NULL, `ClickUrl` varchar(600) DEFAULT NULL, `CreatedDate` datetime NULL DEFAULT now(), `ModifyDate` timestamp NULL DEFAULT NULL on update now(), PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; </code></pre> <p>The purpose of table is I need to enter only 'Domain' and 'ClickUrl' data using insert command remaining Id(autoincrement),CreatedDate(current date when inserting row),ModifyDate(when update the row) will automatically insert.</p> <p>The above table is executed successfully in mysql environment in my local system but it is not executing in the mysql environment in hostgator</p> </div>

PHP使用utf-8编码访问图像

<div class="post-text" itemprop="text"> <p>I have used scrapy(a python crawler framework), I crawled some images and dowload them,also I store the image online url in mysql table and after download I store the local path into mysql.now there is one problem, when I try to display the image with php, it can't access the image...it just display **404* my mysql table:</p> <pre><code>+-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | brand | varchar(45) | NO | | NULL | | | series | varchar(45) | NO | | NULL | | | commodity | varchar(45) | NO | | NULL | | | designer | varchar(45) | NO | | NULL | | | year | varchar(45) | NO | | NULL | | | description | text | NO | | NULL | | | technology | text | NO | | NULL | | | url | text | NO | | NULL | | | local_url | text | NO | | NULL | | | name | text | NO | | NULL | | | downloaded | tinyint(1) | NO | | 0 | | | referer | varchar(45) | NO | | NULL | | +-------------+-------------+------+-----+---------+----------------+ </code></pre> <p>I use <strong>url</strong> field store the online image url and <strong>local_url</strong> field store the local image path.<br> some data in <strong>local_url</strong> is as following:</p> <pre><code>agape/— Contenitori/EVO-N\_NIVIS\_ALTO.jpg?1415875406,agape/— Contenitori/EVO-N\_CONTENITORE.jpg?1415875446,agape/— Contenitori/FLAT\_XL\_CONT\_PUZZLE.jpg?1415875463,agape/— Contenitori/EVOLUZIONE\_CONT\_PUZZLE.jpg?1415875485 </code></pre> <p>I user comma to split the image path, the image stored in local is as following:</p> <pre><code>/var/www/images/agape/— Contenitori/xxx.jpg </code></pre> <p>the path contains space and other special charater,when I using php get the image from database and try to access the image,it can not be accessed..<br> the url try to access is as following:</p> <pre><code>http://45.32.255.165/images/agape/%E2%80%94%20Contenitori/EVO-L_660_PART_CASSETTO_R.jpg?1362501749 </code></pre> <p>hope I describe my question clearly......</p> </div>

PHP,Mysql和UTF-8和引号

<div class="post-text" itemprop="text"> <p>I have problems using utf8 in MySQL. I have the following table:</p> <pre><code>CREATE TABLE IF NOT EXISTS `notas` ( `id_nota` int(11) NOT NULL AUTO_INCREMENT, `nombre_nota` varchar(25) NOT NULL, `email_usuario` varchar(100) NOT NULL, `descripcion` text NOT NULL, `nota_creada_en` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `nota_modificada_en` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `borrado` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id_nota`,`email_usuario`), KEY `notas_ibfk_1` (`email_usuario`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=6 ; </code></pre> <p>An the following record stored in the table:</p> <pre><code>(1, 'Nota1 de esta sólido', 'ricardo@gmail.com', 'Esta es una descripción 1', '2014-05-13 13:07:27', '2014-05-13 13:24:31', 0), </code></pre> <p>I'm working on PHPMyAdmin and the record above is how is displayed, I mean the text with quotes like <code>"sólido"</code> is displaying fine.</p> <p>But, finally when I request a query from PHP using PDO:</p> <pre><code>$con = new PDO('mysql:host='.DB_HOST.';dbname='.DB_DATABASE.';charset=utf8mb4', DB_USER, DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND =&gt; "SET NAMES utf8mb4", PDO::MYSQL_ATTR_INIT_COMMAND =&gt; "SET CHARACTER SET utf8mb4")); $con-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); </code></pre> <p>The query returns the record but the contents without quotes, this is what I receive in PHP:</p> <p><code>s\u00f3lido</code> instead <code>of sólido</code></p> <p>In the past, I've tried utf8 instead of utf8mb4 (according to this <a href="https://stackoverflow.com/a/16893103/2139691">post</a>) but I always get the same results.</p> <p>I've tried many ways to solve it but the problem persists.</p> <p>And finally: <code>SHOW VARIABLES LIKE 'c%'</code></p> <pre><code>Variable_name Value character_set_client utf8mb4 character_set_connection utf8mb4 character_set_database utf8mb4 character_set_filesystem binary character_set_results utf8mb4 character_set_server utf8mb4 character_set_system utf8 character_sets_dir /Applications/XAMPP/xamppfiles/share/charsets/ collation_connection utf8mb4_general_ci collation_database utf8mb4_general_ci collation_server utf8mb4_general_ci completion_type NO_CHAIN concurrent_insert AUTO connect_timeout 10 </code></pre> <p>I really appreciate any kind of help.</p> </div>

Mysql建表出现错误:1113 - A table must have at least 1 column

mysql初学者,在navicat上写了一个查询,如下: create table classinfo -- 创建班级表 ( cid int primary key auto_increment,-- 班级编号,主键,自增 cname varchar(20) not null unique,-- 班级名称,非空,唯一 ) create table student-- 创建学生表 ( sid int primary key auto_increment,-- 学号,主键,自增 sname varchar(20) not null,-- 姓名,非空 gender varchar(8) not null-- 性别,非空 height double not null,-- 身高,非空 age int default 0,-- 年龄,不填时默认为零 city varchar(20),-- 籍贯 phone char(11) unique,-- 手机号,唯一约束,即为无重复值, cid int,-- 所属班级编号,未分班的时候加为空 begintime timestamp,-- 出生日期 foreign key(cid) references classinfo(cid)-- 外键引用classinfo表 ) -- 创建成绩表 create table score ( sid int primary key,-- 成绩编号 chinese double not null,-- 语文成绩 math double not null,-- 数学成绩 major double not null,-- 专业课成绩 stuid int not null-- 学生编号 ) 下方信息栏显示的是: 1113 - A table must have at least 1 column 请问问题出在哪里了

MySQL 如果数据类型如果字符型,存放的字段全是数字,会默认为数值型?

1.创建表 XXLSH lsh流水号字段是 字符型 varchar(10) create table XXLSH (LSH varchar(10),ZH varchar(10),HM varchar(10) ); 2. 插入数据,流水号全部是数值的字符串 insert into XXLSH values('1111','7758998','aaaa'); insert into XXLSH values('2222','7758998','aaaa'); 3.进行更新时,where条件不管是字符串还是数值都能更新成功 update XXLSH set HM='xiaohua' where lsh='1111'; update XXLSH set HM='xiaohua' where lsh=2222; ![图片说明](https://img-ask.csdn.net/upload/201909/09/1568017508_595814.jpg) 4.插入一条数据,此时流水号是‘no123’ insert into XXLSH values('no123','7758998','aaaa'); 5.再次进行更新,报错 update XXLSH set HM='xiaoming' where lsh='1111'; update XXLSH set HM='xiaoming' where lsh=2222; [Code: 1292, SQL State: 22001] Data truncation: Truncated incorrect DOUBLE value: 'no123' ![图片说明](https://img-ask.csdn.net/upload/201909/09/1568017204_962817.png) 原因是条件中数据类型不正确。为什么当表里全是数据类型的字符串时,用数值类型条件更新不报错,当表里存在字符串时,用数值类型会受影响。难道是刚开始,虽然定义的类型是varchar类型,但是实际插入的数据是数字,mysql默认是数值类型了,后边插入的数据存在字符串形式。mysql更改类型了?求大神解释一下。

mysql 插入字符有问题

mysql 插入字符问题,因为有一个字段我作了key,不能有重复数据, 在字段添加 a 字符后无法再添加 á 字符,提示 ``` 1062 - Duplicate entry 'á' for key 'chars' ``` **á ** 带声调的属于HTML实体字符,难道mysql认为 a 和 á 是一样的编码? 而且取 a 数据的时候 ,也会把 á 的数据取出来。 使用的服务器版本: 5.7.20 - MySQL Community Server 字符编码采用 UTF-8

学Python后到底能干什么?网友:我太难了

感觉全世界营销文都在推Python,但是找不到工作的话,又有哪个机构会站出来给我推荐工作? 笔者冷静分析多方数据,想跟大家说:关于超越老牌霸主Java,过去几年间Python一直都被寄予厚望。但是事实是虽然上升趋势,但是国内环境下,一时间是无法马上就超越Java的,也可以换句话说:超越Java只是时间问题罢。 太嚣张了会Python的人!找工作拿高薪这么简单? https://edu....

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

为什么程序猿都不愿意去外包?

分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助

Java校招入职华为,半年后我跑路了

何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

@程序员:GitHub这个项目快薅羊毛

今天下午在朋友圈看到很多人都在发github的羊毛,一时没明白是怎么回事。 后来上百度搜索了一下,原来真有这回事,毕竟资源主义的羊毛不少啊,1000刀刷爆了朋友圈!不知道你们的朋友圈有没有看到类似的消息。 这到底是啥情况? 微软开发者平台GitHub 的一个区块链项目 Handshake ,搞了一个招募新会员的活动,面向GitHub 上前 25万名开发者派送 4,246.99 HNS币,大约价...

用python打开电脑摄像头,并把图像传回qq邮箱【Pyinstaller打包】

前言: 如何悄悄的打开朋友的摄像头,看看她最近过的怎么样,嘿嘿!这次让我带你们来实现这个功能。 注: 这个程序仅限在朋友之间开玩笑,别去搞什么违法的事情哦。 代码 发送邮件 使用python内置的email模块即可完成。导入相应的代码封装为一个send函数,顺便导入需要导入的包 注: 下面的代码有三处要修改的地方,两处写的qq邮箱地址,还有一处写的qq邮箱授权码,不知道qq邮箱授权码的可以去百度一...

做了5年运维,靠着这份监控知识体系,我从3K变成了40K

从来没讲过运维,因为我觉得运维这种东西不需要太多的知识面,然后我一个做了运维朋友告诉我大错特错,他就是从3K的运维一步步到40K的,甚至笑着说:我现在感觉自己什么都能做。 既然讲,就讲最重要的吧。 监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问题。目前业界有很多不错的开源产品可供选择。选择一款开源的监控系统,是一个省时省力、效率最高的方...

C++(继承):19---虚基类与虚继承(virtual)

一、菱形继承 在介绍虚继承之前介绍一下菱形继承 概念:A作为基类,B和C都继承与A。最后一个类D又继承于B和C,这样形式的继承称为菱形继承 菱形继承的缺点: 数据冗余:在D中会保存两份A的内容 访问不明确(二义性):因为D不知道是以B为中介去访问A还是以C为中介去访问A,因此在访问某些成员的时候会发生二义性 缺点的解决: 数据冗余:通过下面“虚继承”技术来解决(见下) 访问...

再不跳槽,应届毕业生拿的都比我多了!

跳槽几乎是每个人职业生涯的一部分,很多HR说“三年两跳”已经是一个跳槽频繁与否的阈值了,可为什么市面上有很多程序员不到一年就跳槽呢?他们不担心影响履历吗? PayScale之前发布的**《员工最短任期公司排行榜》中,两家码农大厂Amazon和Google**,以1年和1.1年的员工任期中位数分列第二、第四名。 PayScale:员工最短任期公司排行榜 意外的是,任期中位数极小的这两家公司,薪资...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

win10暴力查看wifi密码

刚才邻居打了个电话说:喂小灰,你家wifi的密码是多少,我怎么连不上了。 我。。。 我也忘了哎,就找到了一个好办法,分享给大家: 第一种情况:已经连接上的wifi,怎么知道密码? 打开:控制面板\网络和 Internet\网络连接 然后右击wifi连接的无线网卡,选择状态 然后像下图一样: 第二种情况:前提是我不知道啊,但是我以前知道密码。 此时可以利用dos命令了 1、利用netsh wlan...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

女朋友过生日,我花了20分钟给她写了一个代理服务器

女朋友说:“看你最近挺辛苦的,我送你一个礼物吧。你看看想要什么,我来准备。” 我想了半天,从书到鞋子到电子产品最后到生活用品,感觉自己什么都不缺,然后和她说:“你省省钱吧,我什么都不需要。” 她坚持要送:“不行,你一定要说一个礼物,我想送你东西了。” 于是,我认真了起来,拿起手机,上淘宝逛了几分钟,但还是没能想出来缺点什么,最后实在没办法了:“这样吧,如果你实在想送东西,那你就写一个代理服务器吧”...

记一次腾讯面试,我挂在了最熟悉不过的队列上……

腾讯后台面试,面试官问:如何自己实现队列?

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

立即提问
相关内容推荐