存档
-
MySQL中得到当前使用的数据库
在MySQL中用use 切换使用的数据库(或者在PHP中用mysql_select_db函数),反过来我们怎样知道正在使用的是哪个数据库呢? 这种需求很少遇到,但是还是会遇到的:) 所以找了一下,发现MySQL可以通过select databse()命令来查看当前使用的数据库。 ps:MySQL database函数 推荐:Stop Making Apps 再搭车推荐: 《他们在毕业的前一天爆炸 》《听说》《那些年,我们一起追的女孩》值得一看
83 阅读 | 没有评论2012年1月5日 | 归档于 LAMP标签: MySQL -
SQL中LIKE的另类玩法
设想一个场景,我有个关键词屏蔽词库(应该很多网站都有吧),所有的关键词都存储在MySQL中,怎样查询某个字符串是否含有屏蔽关键词? 比如我们有一个屏蔽词 tom,要屏蔽任何含有tom的词语。 通常情况下LIKE这样用 SELECT * FROM `table` WHERE field LIKE ’%字符串%’ 下面我们这样玩,来解决上面的问题 SELECT * FROM `table` WHERE ‘字符串’ LIKE CONCAT(‘%’,field,’%’) PS: 这让我想起了初中时数学课中经常用来做几何证明的逆向思考方式。
108 阅读 | 没有评论2011年12月21日 | 归档于 LAMP标签: MySQL -
mysql 跨库的触发器
今天遇到一个问题,想通过写一个垮库的触发器来解决。 其实垮库的触发器和同一个库的触发器,没有多大的区别。 只需要在操作的表前面加上数据库就可以了。 另外,触发器是存储在存在触发事件的表对应的数据库中的, 但是在触发执行语句中不用显示的更换数据库(use database)。 示例代码: 123456789101112131415161718192021222324#示例1 DELIMITER $ USE `tom`$ DROP TRIGGER /*!50032 IF EXISTS */ `trigger1`$ CREATE /*!50017 DEFINER = ‘root’@'localhost’ */ TRIGGER `trigger1` AFTER INSERT ON `tom`.`stu` FOR EACH ROW BEGIN INSERT INTO `test`.`coder` VALUES(new.id,new.name); END $ DELIMITER ; #示例2 DELIMITER & USE `shine` & DROP TRIGGER IF EXISTS `object_permission_trigger` & CREATE [...]
265 阅读 | 没有评论2011年10月12日 | 归档于 LAMP标签: MySQL -
【转载】MySQL 常用用户管理命令
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384851、添加用户 本机访问权限: mysql> GRANT ALL PRIVILEGES ON *.* TO ‘username’@'localhost’ -> IDENTIFIED BY ‘password’ WITH GRANT OPTION; 远程访问权限: mysql> GRANT ALL PRIVILEGES ON *.* TO ‘username’@'%’ -> IDENTIFIED BY ‘password’ WITH GRANT OPTION; 另外还有一种方法是直接Insert INTO user,注意这种方法之后需要 FLUSH PRIVILEGES 让服务器重读授权表。 insert into user(host,user,password,ssl_cipher,x509_issuer,x509_subject) values(‘localhost’,’xff’,password(‘xff’),”,”,”); FLUSH PRIVILEGES; note:1)必须要加上ssl_cipher,x509_issuer,x509_subject三列,以为其默认值不为空(数据库版本为:5.0.51b) 2)FLUSH PRIVILEGES重载授权表,使权限更改生效 3)mysql是通过User表,Db表,Host表,Tables_priv 表,Columns_priv 表这5张表实现用户权限控制,均可以通过直接对这些表的操作以达到对用户的管理 2、删除用户 drop user admin@localhost;(@不加默认为“%”) [...]
360 阅读 | 没有评论2011年7月4日 | 归档于 LAMP标签: MySQL -
再谈MySQL乱码问题
MySQL乱码问题确实是一个比较头痛的问题。 前些天又遇到了MySQL的乱码问题,本来我自己做网站的话,现在不会遇到乱码。但是前些天接手的一个网站,前期是一个老师弄了一段时间,然后又找我帮忙弄得,所以到最后迁移的时候又遇到了的编码问题。 在解决的时候找到了一个办法。场景是这样的,我们是用DEDE做的网站,原先使用GBK做的,后来要迁移到UTF8上来。我们知道直接在数据库中改变编码会导致数据库中的数据直接在数据库中存储的都是乱码,所以我这样解决的问题,用phpMyAdmin的导出功能导出GBK编码的数据,然后打开导出的SQL文件,然后搜索替换里面的GBK关键词为UTF8,然后接SQL导出文件导入到目标机器。这样就可以平滑的将数据库由GBK变为UTF8的编码。
503 阅读 | 2 条评论2010年9月26日 | 归档于 LAMP标签: MySQL -
php读取mysql中文乱码问题
php中文乱码问题几乎是每一个php初学者都要遇到的问题,php中文乱码问题最典型的就是php读取mysql或向mysql写入数据的时候出现的中文乱码问题。出现php中文乱码问题的时候一般可以通过一下两种方法解决: (1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值。 如 default-character-set = utf8 character_set_server = utf8 修改完后,重启mysql的服务,service mysql restart (2)发送查询query 查询前发送SET NAMES ‘utf8′语句。 mysql_query(“set names utf8″); 之后就可以正常的发送自己的查询语句了。 通过上面的两个方法一般就可以解决php读取mysql中文乱码的问题
661 阅读 | 没有评论2009年11月22日 | 归档于 LAMP

近期评论