一,最后插入的id
我们常常会将该表的主关键字设置为一个自增量,当我们使用insert 插入一条记录时,怎么获得刚刚插入的那条记录的id呢?
方法1: select max(id) from tTable
因为有并发的存在,这个方法是不可靠的.
正确方法: Select last_insert_id() 这是可靠的.有兴趣的人可以看下面这篇文章
http://blog.163.com/javahou/blog/static/124403362200971995155763/
二,转义问题
一个字段串,比如说 c:\doc
那么写成C语言的话,因为\是用来转义的必须使用 c:\\doc 这个大家都知道了.
但是如果你要写进mysql 的语句里,也许你得使用 c:\\\\doc
因为,C语言进行一次转义,你传递查询语句给mysql,mysql也会进行一次转义!
也就是说,你得用4个 \ 来代表一个真正的 \
不知道我说清楚没有.
我在程序中是这么处理的
szTemp.Replace(L"\\",L"\\\\"); //这一行是特意处理字符串转义的
wchar_t sCmd[256];
wsprintf(sCmd,L"Select * from tdisk where upper(path)='%s'",szTemp);
这样,才正确.
注:随笔发表后,有朋友指出 mysql_real_escape_string 确是正解.非常感谢.不过在某些场合,我这个方法也是可用的.