我现在要插入mysql数据库一批数据,我是用程序读取文件插入数据库的,程序中用分号判断是否是一句sql语句。
如果插入的数据里面有分号(;)的话,会有问题。
现在不能改变程序,能不能把;转义一下,插入之后在读取出来还是(;)呢。
请高手给看看。

解决方案 »

  1.   


    MySQL的转义字符“\”
      

  2.   

    insert table_name ('1','&nbsp\59');
    数据显示为 1   &nbsp59
      

  3.   

    insert table_name ('1',' '); 
    这样在mySQL下是可以的啊。贴出你实际语句。包括你程序中的语句。
      

  4.   

    DROP TABLE IF EXISTS `mocha_helper_content`;CREATE TABLE `mocha_helper_content` (
      `HELPERID` bigint(20) NOT NULL auto_increment,
      `DESCRIPTION` varchar(1024) NOT NULL,
      `CONTENT_CN` text,
      `CONTENT_EN` text,
      `TYPEID` int(11) default NULL,
      `DELETEFLAG` int(11) default '1',
      `MODIFYDATE` timestamp NOT NULL default CURRENT_TIMESTAMP,
      `MODIFYBY` varchar(50) default NULL,
      PRIMARY KEY  (`HELPERID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;insert  into `mocha_helper_content`(`HELPERID`,`DESCRIPTION`,`CONTENT_CN`,`CONTENT_EN`,`TYPEID`,`DELETEFLAG`,`MODIFYDATE`,`MODIFYBY`) values (1,'第一步-邮件服务器设置','<P><STRONG>邮件报警设置:</STRONG>设置发送邮件报警的服务器、发送邮箱等信息。<BR>如果此项未设置,那么用户将接收不到邮件报警。<BR>另外,当管理员在发现资源时,如果出现意外,可以使用所设置的邮件服务器发送错误报告。<BR>设置之后,可进入下一步进行资源初始化。<BR>如果不需要设置,可跳过此步,直接进行资源初始化或用户初始化,也可以直接点击“完成”完成初始化,初始化将不再出现。</P>','',1,1,'2009-02-26 20:47:27',NULL),(2,'第二步-资源初始化-初始化方式选择','<P>这个页面提供的是可进行资源初始化的方式,选择任何一种方式,都能够在酷点的引导下快速添加一批需要监控的资源。<BR><STRONG>全网发现:</STRONG>输入核心设备的IP地址,酷点就能够通过该地址发现并组件您的网络拓扑。<BR><STRONG>子网发现:</STRONG>指定局域网中的一个子网,对子网下的所有设备和拓扑结构进行发现。<BR><STRONG>Excel导入:</STRONG>如果您需要大批量的添加要监控的设备,以及应用服务器、数据库等资源,可以采用这种方式,酷点已经为您提供了定制好的模板,您只需要下载该模板,并按照模板的内容填写,上传填写好的模板文档,就可以把模板中的所有资源加入酷点的监控。<BR>如果不需要进行资源初始化,可以直接点击“用户初始化”进入用户初始化页面,或者点击“完成”完成初始化,初始化将不再出现。</P>','',1,1,'2009-02-26 20:46:10',NULL),(3,'第二步-资源初始化-全网发现-输入发现信息','选择初始化方式之后,进入发现信息输入界面,此时可点击箭头图标展开第一步。<BR>此步中需要输入核心设备IP地址和共同体名。<BR><STRONG>核心设备IP地址:</STRONG>请输入局域网中核心设备的IP地址。<BR><STRONG>共同体名:</STRONG>请输入局域网中待发现设备的只读共同体名。可输入多个,以\59分隔。<BR>输入核心设备IP地址和共同体名之后,点击“开始”,开始进行全网发现。&nbsp;','',1,1,'2009-02-26 20:49:03',NULL),(4,'第二步-资源初始化-全网发现-发现','<P>本步为发现过程,展现发现的进度百分、耗用时间,以及发现结果和日志。<BR>如果要停止进行全网发现,可点击“停止”按钮。<BR><STRONG>发现报告:</STRONG>列出全网发现的发现设备总数,以及各类设备的个数。<BR><STRONG>发现日志:</STRONG>列出发现过程的详细日志,如果有发现不成功的设备,在日志中列出不成功的原因。<BR>全网发现结束之后,如果要监控已发现设备,请点击“开始监控”按钮,将已发现设备加入监控。</P>','',1,1,'2009-02-26 20:49:32',NULL),(5,'第二步-资源初始化-全网发现-监控','本步为已发现设备加入监控的过程,展现加入监控的进度百分、耗用时间,以及发现结果和日志。<BR><STRONG>加入监控报告:</STRONG>列出已加入监控的设备个数和类别。<BR><STRONG>监控日志:</STRONG>列出监控过程的详细日志,如果有监控不成功的设备,在日志中列出不成功的原因。<BR>加入监控结束,全网发现的整个过程结束了,此时可回到“初始化方式选择”选择其他方式继续初始化,或进入下一步,进行用户初始化。&nbsp;','',1,1,'2009-02-26 20:36:50',NULL),(6,'第二步-资源初始化-子网发现-输入发现信息','选择初始化方式之后,进入发现信息输入界面,此时可点击箭头图标展开第一步。<BR>此步中需要输入子网地址和子网掩码。<BR><STRONG>子网地址:</STRONG>局域网中带发现子网的IP地址。<BR><STRONG>子网掩码:</STRONG>子网掩码的地址。<BR>添加子网之后,点击“开始”即可发现所添加的子网。&nbsp;','',1,1,'2009-02-26 20:38:03',NULL),(7,'第二步-资源初始化-子网发现-发现','本步为发现过程,展现发现的进度百分、耗用时间,以及发现结果和日志。<BR>如果要停止进行子网发现,可点击“停止”按钮。<BR><STRONG>发现报告:</STRONG>列出子网发现的发现设备总数,以及各类设备的个数。<BR><STRONG>发现日志:</STRONG>列出发现过程的详细日志,如果有发现不成功的设备,在日志中列出不成功的原因。<BR>子网发现结束之后,如果要监控已发现设备,请点击“开始监控”按钮,将已发现设备加入监控。&nbsp;','',1,1,'2009-02-26 20:39:23',NULL),(8,'第二步-资源初始化-子网发现-监控','本步为已发现设备加入监控的过程,展现加入监控的进度百分、耗用时间,以及发现结果和日志。<BR><STRONG>加入监控报告:</STRONG>列出已加入监控的设备个数和类别。<BR><STRONG>监控日志:</STRONG>列出监控过程的详细日志,如果有监控不成功的设备,在日志中列出不成功的原因。<BR>加入监控结束,子网发现的整个过程结束了,此时可回到“初始化方式选择”选择其他方式继续初始化,或进入下一步,进行用户初始化。','',1,1,'2009-02-26 20:40:14',NULL),(9,'第二步-资源初始化-Excel导入-输入发现信息','<P>选择初始化方式之后,进入发现信息输入界面,此时可点击箭头图标展开第一步。<BR>在这个步骤,添加资源是通过上传Excel文件来实现的。<BR><STRONG>首先,</STRONG>可点击“下载”下载Excel文件模板;<BR><STRONG>然后,</STRONG>填写模板中的内容,<STRONG>填写完毕,</STRONG>点击“浏览”按钮,把Excel文件上传。<BR>这两步完成之后,点击“发现”即可导入Excel文件里的资源列表。</P>','',1,1,'2009-02-26 20:52:41',NULL),(10,'第二步-资源初始化-Excel导入-发现','<P>本步为发现过程,展现发现的进度百分、耗用时间,以及发现结果。<BR><STRONG>发现结果:</STRONG>列出Excel导入的资源个数,以及导入成功和失败的个数。<BR>点击Excel图标可导出发现报告。<BR>Excel导入结束之后,可回到“初始化方式选择”选择其他方式继续初始化,或进入下一步,进行用户初始化。</P>','',1,1,'2009-02-26 20:42:30',NULL),(11,'第三步-用户初始化','本页面用于进行用户的添加和编辑。<BR>Mocha KoolPoint的默认管理员为admin,不可进行删除。<BR>admin可在此页面点击“新建”按钮添加新用户。添加的用户出现在用户列表中。<BR>在用户列表中,admin可点击用户名,在弹出页面编辑用户信息,或在列表中选中用户,点击“删除”按钮删除所选用户。<BR>可跳过“用户初始化”,直接点击“完成”进入完成页面,完成系统的初始化。&nbsp;','',1,1,'2009-02-26 20:43:43',NULL),(12,'第四步-完成','<P>当到达此页面,标志着系统初始化完成,您可以按照此页面中的向导查看您的初始化成果,或进入系统中的其他模块进行操作、浏览。</P>','',1,1,'2009-02-26 20:44:26',NULL);DROP TABLE IF EXISTS `mocha_helper_type`;CREATE TABLE `mocha_helper_type` (
      `TYPEID` int(11) NOT NULL auto_increment,
      `TYPE` varchar(100) NOT NULL,
      `DELETEFLAG` int(11) default '0',
      `MODIFYDATE` timestamp NOT NULL default CURRENT_TIMESTAMP,
      `MODIFYBY` varchar(50) default NULL,
      PRIMARY KEY  (`TYPEID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;insert  into `mocha_helper_type`(`TYPEID`,`TYPE`,`DELETEFLAG`,`MODIFYDATE`,`MODIFYBY`) values (1,'快速开始',0,'2009-02-26 20:32:33',NULL);
    这是实际语句
      

  5.   

    直接在MYSQL中运行你的语句,是没有问题的,你是在程序中?
      

  6.   


    那就直接插入了CHAR(59)了
    insert into table_name ('char(59)')....这样吗?
    还是我理解错了
      

  7.   

    比如要插入123;456
    insert into tt values (CONCAT(123,CHAR(59),456))
      

  8.   

    对,如果要用REPLACE,就要先替换成一个非常特殊的字符串才行,
    否则用CHAR(59)吧
      

  9.   


    首先,mySQL命令行下建议你测试 insert into yourTable value ('aa;aa');这种应该是没有问题的。
    如果上句测试在你的mysql中没有问题,则建议无需在你的程序中把;变换成其它的字符。问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)贴出你的实际环境及出错信息。
    你是直接在mysql命令行下执行的,还是在某个程序中?
      

  10.   

    mysql>  select ';' as aa ; 
    +----+
    | aa |
    +----+
    | ;  | 
    +----+用引号引起来没问题啊.