MySQL 中无法 insert 文件路径 中的 backward slash的解决方法

Good day. If I do the following...
INSERT INTO myTable (data) VALUES('Here is a backslash \ ');

I escape it prior to sending so the value that gets sent to the DB is....
INSERT INTO myTable (data) VALUES('Here is a backslash \\ ');

BUT when I check the DB the data field reads
[Here is a backslash ]

It eats the single backslash.

How can I prevent this?

Thank you.
Paul C. McNeil
Developer in Java, MS-SQL, MySQL, and web technologies.















GOD BLESS AMERICA!
To God Be The Glory!

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs [at] m.gmane.org
Paul McNeil [ Fr, 09 April 2004 13:16 ] [ ID #83143 ]

Re: Backslash NOT being stored

On 2004-04-09, at 13.16, Paul McNeil wrote:

> INSERT INTO myTable (data) VALUES('Here is a backslash \ ');
>
> I escape it prior to sending so the value that gets sent to the DB
> is....
> INSERT INTO myTable (data) VALUES('Here is a backslash \\ ');
>
> BUT when I check the DB the data field reads
> [Here is a backslash ]
>
> It eats the single backslash.
>
> How can I prevent this?

Is it possible that you're using a string to send the sql command?
If so, your \\ construct only ensembles a single backslash (in most
programming languages I know, you must escape the backslash within
a string using a backslash.

So assuming the above, you might want to use ".... \\\\ ...." even
if it looks weird. It's basically two '\' escaped by '\' so that
mysql gets a '\\' which then is inserted as a '\'. Clear?

Andreas Pardeike


--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs [at] m.gmane.org
Andreas Pardeike [ Fr, 09 April 2004 14:45 ] [ ID #83144 ]

Re: Backslash NOT being stored

Hi!

On Apr 09, Paul McNeil wrote:
> Good day. If I do the following...
> INSERT INTO myTable (data) VALUES('Here is a backslash \ ');
>
> I escape it prior to sending so the value that gets sent to the DB is....
> INSERT INTO myTable (data) VALUES('Here is a backslash \\ ');
>
> BUT when I check the DB the data field reads
> [Here is a backslash ]
>
> It eats the single backslash.
>
> How can I prevent this?

According to

http://dev.mysql.com/doc/mysql/en/String_syntax.html

backslash is an escape character and must be escaped.

Regards,
Sergei

--
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Sergei Golubchik <serg [at] mysql.com>
/ /|_/ / // /\ \/ /_/ / /__ MySQL AB, Senior Software Developer
/_/ /_/\_, /___/\___\_\___/ Osnabrueck, Germany
<___/ www.mysql.com

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs [at] m.gmane.org
Sergei Golubchik [ Fr, 09 April 2004 14:55 ] [ ID #83145 ]

Re: Backslash NOT being stored

I tested here with your syntax on MySQL 4.0.12 using the mysql command line
interface. Using SELECT to display the info, shows the backslash. What
version of MySQL are you using? What interface are you using to display the
data in MySQL? If it is something like MySQL Front, it could be that the
display program is the one with the problem.

John

----- Original Message -----
From: "Paul McNeil" <paulie [at] microneil.com>
To: <bugs [at] lists.mysql.com>
Sent: Friday, April 09, 2004 4:16 AM
Subject: Backslash NOT being stored


> Good day. If I do the following...
> INSERT INTO myTable (data) VALUES('Here is a backslash \ ');
>
> I escape it prior to sending so the value that gets sent to the DB is....
> INSERT INTO myTable (data) VALUES('Here is a backslash \\ ');
>
> BUT when I check the DB the data field reads
> [Here is a backslash ]
>
> It eats the single backslash.
>
> How can I prevent this?
>
> Thank you.
> Paul C. McNeil
> Developer in Java, MS-SQL, MySQL, and web technologies.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> GOD BLESS AMERICA!
> To God Be The Glory!
>
> --
> MySQL Bugs Mailing List
> For list archives: http://lists.mysql.com/bugs
> To unsubscribe:
http://lists.mysql.com/bugs?unsub=jwythe [at] silksystems.com
>
>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值