請教大家一個問題。有一張表test ,其有70個字段。
我寫了一個存儲過程來為字段賦值。IN iname varchar(255), IN idetail varchar(255)BEGIN
SET @sqlstr = CONCAT('UPDATE PERSON SET ',iname,' = \'',idetail,'\'');
PREPARE sqlstmt FROM @sqlstr;
EXECUTE sqlstmt;
DEALLOCATE PREPARE sqlstmt;
END如果字符串中不含有 \和' 號時一切正常,但是含有以上兩種符號的任意一種 都沒有辦法正常工作,
傳入前將\轉義成\\ '轉義成 \' 還是執行不了。。請大家幫忙找找原因 非常感謝
我寫了一個存儲過程來為字段賦值。IN iname varchar(255), IN idetail varchar(255)BEGIN
SET @sqlstr = CONCAT('UPDATE PERSON SET ',iname,' = \'',idetail,'\'');
PREPARE sqlstmt FROM @sqlstr;
EXECUTE sqlstmt;
DEALLOCATE PREPARE sqlstmt;
END如果字符串中不含有 \和' 號時一切正常,但是含有以上兩種符號的任意一種 都沒有辦法正常工作,
傳入前將\轉義成\\ '轉義成 \' 還是執行不了。。請大家幫忙找找原因 非常感謝
解决方案 »
- 求教:关于mysql中文查询的问题 最近在做一个网站,是用mysql作数据库,用dreamweaver设计jsp网页。
- mysql 在存储过程中逐行读取表中的数据,对其操作的问题
- MYSQL数据库update问题
- #1130 - Host '127.0.0.1' is not allowed to connect to this MySQL server 问题求救!
- 我想输入数据 use mysql script how to do that ? only 48 mark left!
- primary key不是只能有一个么?
- 紧急求助,一个无法连接数据库服务器的问题
- 如何让我安装在linux上得mysql(version:4.1.14)数据库支持中文?
- mysql中怎么创建一个新的用户?
- 紧急求助JB+MYSQL问题!请高手赐教
- 问一下数据库性能的问题
- 请教
CONCAT('UPDATE PERSON SET ',iname,'=\'',idetail,'\'')你 只有代码判断一下是否有\、'
這個工作肯定是要做的。。
第一,這個問題在我測試存儲過程的時候就出現了。
第二,我在php中一定是會先mysql_real_escape_string再傳入的。所以,也沒有反應
+--------+
| @iname |
+--------+
| a\\b |
+--------+
1 row in set (0.00 sec)mysql> select replace(@iname,'\\','\\\\');
+-----------------------------+
| replace(@iname,'\\','\\\\') |
+-----------------------------+
| a\\\\b |
+-----------------------------+
1 row in set (0.08 sec)mysql>上面的测试好象没有你所说的问题啊。
問題只出在 我所說的這個具體情況裡。
生成一個和我說的情況一樣的存儲過程 從外部調用就知道怎麼回事了。。您的這函數,我貼到我的存儲過程裡試過了。從外部用navicate測試 只要\和’兩個符號不連接在一起都沒有問題。問題我暫時沒去處理。等我想明白,再弄好了,也沒辦法了。
謝謝大家。過兩天過來看看,再結貼。