佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1676|回复: 17

MySQL Insert 疑问

[复制链接]
发表于 2-12-2012 10:35 PM | 显示全部楼层 |阅读模式
各位大大,

小弟正面对着一个问题,相同的sql statement,只是不同的quote,其中一个不能work。

FAILED: INSERT INTO table_name ( 'column' ) VALUES ( 'value' );

OK: INSERT INTO table_name ( `column` ) VALUES ( `value` );

Server charset: UTF-8 Unicode (utf8)
Software version: 5.5.27 - MySQL Community Server (GPL)
Protocol version: 10

请问下是应该要在MySQL configure什么吗?

本帖最后由 User. 于 2-12-2012 10:39 PM 编辑

回复

使用道具 举报


ADVERTISEMENT

发表于 2-12-2012 11:21 PM | 显示全部楼层
不知道是不是这个??
Column Character Set and Collationhttp://dev.mysql.com/doc/refman/5.0/en/charset-column.html
回复

使用道具 举报

 楼主| 发表于 2-12-2012 11:50 PM | 显示全部楼层
gkheng2003 发表于 2-12-2012 11:21 PM
不知道是不是这个??
Column Character Set and Collationhttp://dev.mysql.com/doc/refman/5.0/en/chars ...

我也怀念是这个,study了这页可是又好像找不到相关的资料

Current:
Collation: gbk_bin


回复

使用道具 举报

发表于 3-12-2012 06:23 PM | 显示全部楼层
failed的那个是因为你的' <==
回复

使用道具 举报

 楼主| 发表于 3-12-2012 10:33 PM | 显示全部楼层
mylover 发表于 3-12-2012 06:23 PM
failed的那个是因为你的'

有办法是这个single quote(') work吗?
又或者在C#应该要怎样define SQL使用 `
回复

使用道具 举报

发表于 3-12-2012 11:19 PM | 显示全部楼层
User. 发表于 3-12-2012 10:33 PM
有办法是这个single quote(') work吗?
又或者在C#应该要怎样define SQL使用 `

这个'因该是直接从microsoft word copy 出来的对吗?
回复

使用道具 举报

Follow Us
发表于 4-12-2012 10:34 AM | 显示全部楼层
不知道,这样可以吗?
  1. INSERT INTO table_name ( column ) VALUES ( 'value' );
复制代码
回复

使用道具 举报

 楼主| 发表于 4-12-2012 02:12 PM | 显示全部楼层
mylover 发表于 3-12-2012 11:19 PM
这个'因该是直接从microsoft word copy 出来的对吗?

`是由xampp generate出来的
但我个人比较习惯使用'
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 4-12-2012 02:12 PM | 显示全部楼层
hui_wooi 发表于 4-12-2012 10:34 AM
不知道,这样可以吗?

尝试过了,不行
回复

使用道具 举报

发表于 4-12-2012 02:16 PM | 显示全部楼层
什么error message?
回复

使用道具 举报

发表于 6-12-2012 03:27 PM | 显示全部楼层
column name 要使用这个符号> `
不是single quote '
回复

使用道具 举报

发表于 9-12-2012 10:27 AM | 显示全部楼层
试试用passing parameter:  sqlstring ="INSERT INTO table_name ( 'col1' ) VALUES (?col1)";
可以避免被sql injection.
回复

使用道具 举报

发表于 22-12-2012 03:47 PM | 显示全部楼层
那个符号我也是中过。。。

不用configure什么,把它换了就可以了。
回复

使用道具 举报

发表于 1-4-2013 11:37 PM | 显示全部楼层
拜托Copy and paste 也要做好一点啦。
先pate 进notepad,然后再copy 进你的sql
回复

使用道具 举报

 楼主| 发表于 2-4-2013 02:59 PM | 显示全部楼层
j4m35bonds 发表于 1-4-2013 11:37 PM
拜托Copy and paste 也要做好一点啦。
先pate 进notepad,然后再copy 进你的sql

这不是copy paste的问题。
回复

使用道具 举报

发表于 2-4-2013 03:37 PM | 显示全部楼层
User. 发表于 2-4-2013 02:59 PM
这不是copy paste的问题。

有没有Error code / message?
回复

使用道具 举报


ADVERTISEMENT

发表于 2-4-2013 10:15 PM | 显示全部楼层
mysql 的其中一个 非 sql 92 标准 就是使用 ` backquote (backticks)' single quote

很容易混乱,可以考虑做一个简单的 function 处理这个。


参考:
http://forums.mysql.com/read.php?152,431885,432162

http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

回复

使用道具 举报

发表于 5-4-2013 11:19 AM | 显示全部楼层
MySQL 里面` (backquote) 是用来标识system name 例如 column name 或者 Table name 之类的,'(single quote)是 text qualifier。

例如

  1. SELECT `member_id` FROM `member_table` WHERE `member_id`= 'M0001' AND `member_year` = 2013;
复制代码
所以楼主提出的问题,正确的应该是:

  1. INSERT INTO table_name ( `column` ) VALUES ( 'value' );
复制代码
在PHPMyAdmin里面,系统生成的 Statement 里面 就很清楚的将两者分别开来的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 19-11-2025 11:59 PM , Processed in 0.205221 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表