看看想想记记
2010-03-07Tech

3条评论
660 views

mysql事务备份

1.http://wasabi.javaeye.com/blog/180162

1. $LinkID =mysql_connect('localhost:3307','root',*******);
mysql_select_db('web_his',$LinkID);
mysql_query("set names utf8");

/* 创建事务 */
mysql_query('START TRANSACTION') or exit(mysql_error());
$ssql1="insert into pf_item values('22','我们','30')"; //执行sql 1
if(!mysql_query($ssql1)){
echo $ssql1.mysql_errno().":".mysql_error()."
“;
mysql_query(‘ROLLBACK’) or exit(mysql_error());//判断当执行失败时回滚

exit;
}
$ssql1=”insert into pf_item values(’21′,’hell’,’10′)”; //执行sql 2
if(!mysql_query($ssql1)){
echo $ssql1.mysql_errno().”:”.mysql_error().”
“;
mysql_query(‘ROLLBACK’) or exit(mysql_error());//判断当执行失败时回滚

exit;
}

mysql_query(‘COMMIT’) or exit(mysql_error());//执行事务

mysql_close($LinkID);
?>


2.

mysql_query(“BEGIN”);//开始一个事务
mysql_query(“SET AUTOCOMMIT=0″); //设置事务不自动commit
$insert=”INSERT INTO userinfo VALUES (‘aa12′,’aa’,’1′,’aaa’)”;
mysql_query($insert);
mysql_query(“COMMIT”);//非autocommit模式,必须手动执行COMMIT使操作生效
//mysql_query(“SET AUTOCOMMIT=0″);
$insert=”INSERT INTO userinfo VALUES (‘aa20′,’aa’,’1′,’aaa’)”;
$insert=”INSERT INTO userinfo VALUES (‘aa8′,’aa’,’1′)”;
//mysql_query(“COMMIT”);
if(mysql_num_rows==0)
mysql_query(“ROLLBACK”);//非autocommit模式,执行ROLLBACK使事务操作无效
else echo “ok”;
//mysql_query(“CLOSE”);
mysql_query(“SET AUTOCOMMIT=1″);//恢复autocommit模式
$insert=”INSERT INTO userinfo VALUES (‘aa15′,’aa’,’1′,’aaa’)”;
mysql_query($insert);//不需要手动执行COMMIT就可以使事务操作生效

执行BEGIN之后,其作用同set autocommit=0,而且之后设置set autocommit=0或1时无效。所以,为使操作清楚,一般不使用BEGIN。

3.mysql事务与行锁

http://www.611530.com/PC/wangzhan/200910/2220.html

4.

http://hi.baidu.com/cuihu0706/blog/item/1dd6ccb1621c355709230278.html

$handler=mysql_connect("localhost","root","");
mysql_select_db("task");
mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN");//开始事务定义
if(!mysql_query("insert into trans (id) values('2')"))
{
mysql_query("ROOLBACK");//判断当执行失败时回滚
}
if(!mysql_query("insert into trans (id) values('4')"))
{
mysql_query("ROOLBACK");//判断执行失败回滚
}
mysql_query("COMMIT");//执行事务
mysql_close($handler);
?>

5.各种锁的类型:

http://www.d5s.cn/archives/93

6.CI中的事务:

http://xinbituya.blogbus.com/logs/21820416.html

http://codeigniter.org.cn/user_guide/database/transactions.html

myssql fulltext 全文索引

参考:http://haka.sharera.com/blog/BlogTopic/1001.htm

mysql当把字段设成fulltext时,就可以使用了,
但有几个问题要注意:
1.对于四个字符以下的字符可以搜不出来:
SELECT * FROM articles
-> WHERE MATCH (title,body) AGAINST (‘spa’);

这是因为mysql设置
需要修改配置:
ft_min_word_len 为2或者你想要的字符长度
默认是4

2.对于出现机率太高的可能搜不出来,不太清楚原因:
SELECT * FROM oneword_content where match( name) against (‘space’)

试试:
SELECT * FROM oneword_content where match( name) against (‘space’ IN BOOLEAN MODE)

返回顶部