MySQL中单引号,双引号和反引号的区别

MySQL中单引号,双引号和反引号的区别,第1张

1、首先单引号和反引号,如图,这里的   '图书ID'   就使用到了单引号,而 CREATE TABLE `book`  这里的  book  就使用到了反引号。

2、单引号:在例子中的条件值周围使用的是单引号。SQL 使用单引号来环绕文本值。如果是数值,不要使用引号。

3、反引号:它是为了区分MYSQL的保留字与普通字符而引入的符号。有MYSQL保留字作为字段的,必须加上反引号来区分。

4、双引号的用法和单引号有所类似,大多数数据库都支持单引号和双引号的互换,即varchar类型的变量既可以用单引号来囊括,也可以用双引号。

5、另外,在oracle里面,双引号还有一个意义,那就是保留大小写。在oracle数据库里面,所有的字段是默认为转化成大写后进数据库的,所以如果有一个表名为user,这个时候select * from user;这个语句是查不出任何数据的。

意思是mysql数据库中的event表中本来该22个字段,你的表才18过,所以出错了,你把表升级到22个字段的吧

我从数据库导出的:

DROP TABLE IF EXISTS `event`

CREATE TABLE IF NOT EXISTS `event` (

`db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',

`name` char(64) NOT NULL DEFAULT '',

`body` longblob NOT NULL,

`definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',

`execute_at` datetime DEFAULT NULL,

`interval_value` int(11) DEFAULT NULL,

`interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,

`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

`last_executed` datetime DEFAULT NULL,

`starts` datetime DEFAULT NULL,

`ends` datetime DEFAULT NULL,

`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',

`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',

`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',

`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',

`originator` int(10) unsigned NOT NULL,

`time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',

`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,

`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,

`db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,

`body_utf8` longblob,

PRIMARY KEY (`db`,`name`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events'

试试吧,祝你好运

加上反斜杠,就是对

'

或者

"

的,可以用

\'

\''

替换

\"\'12><>》;

一般如果是在php程序上进行插入数据库的话,可以先做个处理

$str='

"'12><>》;

'

if(!get_magic_quotes_gpc()){

$str=addslashes($str)

//addslashes这个函数会对字符串进行处理,即对

'

或者

"

的,用

\'

\''

替换

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5903071.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存