phper,PHP学习_PHP技术_PHP网站建设_PHP程序员专注于PHP技术研究及学习

文档归类:数据库

Mysql全文检索,PHP+MYSQL实现全文检索2013-01-25

全站搜索:请查看开源中国的搜索板块 如何使用MYSQL+PHP实现全文检索功能? 很多人可能马上可以想出几种方案,比如:文件检索法、采用SQL的like语句等方法,但这些方法效率都相当的低。 这里介绍一种比较高效的PHP全文检索实现方法,这就是采用MYSQL的FULLTEXT字段类型。但是MYSQL的FULLTEXT字段对中文的支持不是很好,本文也一并介绍如何通过PHP+MYSQL实现中文全文检索功能。 首先需要用到一个PHP中文分词扩展模块——SCWS,关于这个模块的安装和使用大家可以到www.ftphp.com/scws去查找相关内容(如有问题请留言)。 然后再看看mysql的fulltext字段类型的相关信息: MySQL3.23.23之后的版本开始支持全文索引和搜索。全文索引在 MySQL 中是一个 FULLTEXT 类型索引。 FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、VARCHAR 或 TEXT 列上创建。对于大的数据库,将数据装载到一个没有 FULLTEXT 索引的表中,然后再使用 ALTER TABLE (或 CREATE INDEX) 创建索引,这将是非常快的。将数据装载到一个已经有 FULLTEXT 索引的表中,将是非常慢的。 MYSQL全文搜索通过 MATCH() 函数完成。 下面举一简单例子: 1、新建数据表: CREATE TABLE fulltext_samp...
此文被围观915 分类: 数据库 标签:  ·····

mysql错误:1286 - Unknown table engine 'InnoDB\temp',mysql错误解决方法2013-01-25

昨天晚上有一个客户说他的网站不能下载了!我进去一看,页面上显示:1286 - Unknown table engine 'InnoDB\temp' 一看应该就知道是数据库这块的问题,mysql错误解决方法 一、 Unknown table engine 'InnoDB'[转载] 查看文章 ERROR 1286 (42000): Unknown table engine 'InnoDB'2009-07-17 15:51 从主库复制innodb的所有文件做副库,启动后报ERROR 1286 (42000): Unknown table engine 'InnoDB' 删ib_logfile*,可能是my.cnf对log的设置不一样造成读不出来。 最近在迁移mysql数据库innodb引擎的过程中,碰到以上错误。把ib_logfile*删除,再启动mysql即可正常。yeah。 好久没写文章了。 二、 Query failed: Unknown table engine ‘InnoDb’ 提示信息明显,缺少InnoDb数据库引擎。 命令行下查看一下可用数据库引擎: Mysql> show engines; +————+———+———— | Engine | Support | Comment … +————+———+———— | MEMORY | YES | … | FEDERATED | NO | ...

mysql指定ID排序,MySQL 按指定字段自定义列表排序,MySql查询结果排序2013-01-18

mysql指定ID排序,MySQL 按指定字段自定义列表排序,MySql查询结果排序 方法一、 [php] select * from table1 order by instr('1,4,5,7,2',id) [/php] 方法二、 [php] select * from test where id in(3,1,5) order by find_in_set(id,'3,1,5'); [/php] 方法三、 [php] select * from test where id in(3,1,5) order by substring_index('3,1,2',id,1); [/php] 方法四、 [php] select * from a where id in(8,11,3) order by field(id,8,11,3); [/php] 大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例, 下同): SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` ASC 降序排列的 SQL 为: SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` DESC 有时以上排序并不能满足我们的需求. 例如, 我们想要按 id 以 5, 3, 7, 1 的顺序...

mysql列出所有数据表,mysql2013-01-17

今天做账号删除功能的时候,需要将在整个系统中的数据都删除. mysql_list_tables (PHP 3, PHP 4 ) mysql_list_tables -- 列出 MySQL 数据库中的表 说明 resource mysql_list_tables ( string database [, resource link_identifier]) mysql_list_tables() 接受一个数据库名并返回和 mysql_query() 函数很相似的一个结果指针。用 mysql_tablename() 函数来遍历此结果指针,或者任何使用结果表的函数,例如 mysql_fetch_array()。 database 参数是需要被取得其中的的表名的数据库名。如果失败 mysql_list_tables() 返回 FALSE。 为向下兼容仍然可以使用本函数的别名 mysql_listtables(),但反对这样做。 注: 该函数已经被删除了,请不要再使用该函数。您可以用命令 SHOW TABLES FROM DATABASE 来实现该函数的功能。 例子 1. mysql_list_tables() 例子 [php] <?php $dbname = 'mysql_dbname'; if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) { print 'Could not connect to mysql'; exit;...

mysql插入复制一条记录并插入,mysql 复制记录,Mysql同表记录复制2013-01-15

这两天在测试项目,需要很多数据,于是就想到了mysql同表复制. 看代码: [php] INSERT INTO `table` ('id','aa','bb','cc') SELECT 'id','aa','bb','cc' FROM `table` (WHERE .....) /** * 复制新纪录的时候,可能要更新id或者是部分数据(假设id自增加的情况) * * text_aa 为固定值 ,可在脚本调用中赋变量值 如($aa) * 注意'text_aa' 与 `cc` 的区别 ,一个是数据,一个是字段 **/ INSERT INTO `table` (`id`,`aa`,`bb`,`cc` ) SELECT '','aa内容','bb注意cc符号区别',`cc` FROM `table` (WHERE .....) /** * CONCAT(`bb`,'附加信息 -Copy') * 在提取原有数据的基础上,增加附加信息 (windwos 下见过复件 xxxx.xxx 的都明白) **/ INSERT INTO `table` (`id`,`aa`,`bb`,`cc` ) SELECT '','aa内容',CONCAT(`bb`,'附加信息 -Copy'),`cc` FROM `table` (WHERE .....) [/php] insert into table_name values select * from table_name; #复制自己 MySQL ...

MySQL 数据类型分析(二),MySQL 数据类型讲解2013-04-24

接着前面的一篇关于《MySQL 数据类型分析(一),MySQL 数据类型讲解》的文章。 我们要把现实世界中的各种信息转换成计算机能理解的东西,这些转换后 的信息就形成了数据。例 如,某人的出生日期是“1987年5月23日”,他的身高是170厘米,等等。数据不仅包括数字、字母、文字和其他特殊字符组成的文本形式的数据,而且还 包括图形、图像、动画、影像、声音等多媒体数据。但使用最多、最基本的仍然是文本数据。 1. MySQL的数据类型 在MySQL中有如下几种数据类型: (1)数值型 数 值是诸如32 或153.4 这样的值。MySQL 支持科学表示法,科学表示法由整数或浮点数后跟“e”或“E”、一个符号(“+”或“-”)和一个整数指数来表示。1.24E+12 和23.47e-1 都是合法的科学表示法表示的数。而1.24E12 不是合法的,因为指数前的符号未给出。 浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但不能同时为空。 数值前可放一个负号“-”以表示负值。 (2)字符(串)型 字符型(也叫字符串型,简称串)是诸如“Hello, world!”或“一个馒头引起的血案”这样的值,或者是电话号码87398413这样的值。既可用单引号也可用双引号将串值括起来。 初 学者往往分不清数值87398143和字符串87398143的区 别。都是数字啊,怎么一 个要用数值型,一个要用字符型呢?关键就在于:数值型的87398143是要参与计算的,比如它是金融中的一个...

mysql替换所有字符串,mysql替换字符串,字符替换2013-01-11

今天在做一个网站的时候,需要将以前的一个网址和标题全部替换成现在的网址http://xiguazz.com. 以前只用个替换单个字段里面的字符 update tbl_info set url replace (url, 'http://adoophper.com/', 'http://xiguazz.com'); mysql在型是update table_name set field replace (str, 'from_str', 'to_str'); 这个无法满足当时的需要, 在这里我们提供mysql替换所有字符的解决办法: 将数据库导出,打开用编辑器全部替换这是最简单的方法了,哈哈。。。。。。...

mysql取得指定表中指定字段的默认值,mysql获取字段默认值2013-01-03

例如表结构如下: [php] `id` mediumint(9) NOT NULL AUTO_INCREMENT, `a` char(2) NOT NULL DEFAULT '12', `b` datetime NOT NULL DEFAULT '2012-01-01 00:00:00', [/php] 返回该表中,字段a 和字段 b的默认值,12 和 2012-01-01 00:00:00 查询指定表中指定字段的最好的方式就是使用 DEFAULT()函数。 大家都是将整个表的字段信息全部拿出来了。。 比如查询 字段 a 的默认值: [php] select default(a) as df from tab limit 1 [/php] 大家可以试试这条语句 [php]SHOW COLUMNS FROM 表名[/php] 这样就可以了呀 它会返回以下字段信息 [php] Field Type Null Key Default Extra ver char(50) YES 1.0 [/php]...

centos优化mysql,mysql数据库优化2012-12-19

apache+php+mysql网站优化,今天主要说的是mysql方面的优化。 我们经常要优化一下 MySQL 数据库,菜鸟就进 phpMyAdmin 一个个点优化 开发PHP的,一般就在网站的程序里通过 php 实现了,但这 2 种方法都不够好 下面告诉你一个绝招,用 mysqlcheck 一条命令搞定,高效又安全 请试下在 putty 或crt里执行下面的命令: mysqlcheck -Aao --auto-repair -u你的用户名 -p你的密码 如果不出意外,你将发现,你所有的数据库都被优化和修复了一次! 如果提示 mysqlcheck 找不到呢, 如果不是,请跳过这步。 找不到 mysqlcheck 的原因一般是手动编译安装的,像我一样,就 locate mysqlcheck 一下,发现在 /usr/local/mysql/bin/ 下面,就是我安装MySQL时指定的路径 ,OK,给他加个快捷方式 ln -s /usr/local/mysql/bin/mysqlcheck /usr/bin/mysqlcheck 下面说下几个参数的含义 -a, --analyze 分析 [Analyze given tables] -o, --optimize 优化 [Optimize table] -A, --all-databases 所有的数据库 [Check all the database] --auto-repair 自动修复 [If a checked table is corru...

mysql修改内容中的一部分,MYSQL批量修改,只修改字段的某一部分2012-11-28

今天在采集图片的时候遇到一个MYSQL问题:采集来的图片地址多了一个‘/',于是打开MYSQL管理工具,对其进行修改 CREATE TABLE test ( ID INT IDENTITY(1,1), NAME VARCHAR(20) ) INSERT INTO test(NAME) VALUES ('杨天天') INSERT INTO test(NAME) VALUES ('杨天') INSERT INTO test(NAME) VALUES ('天天杨') INSERT INTO test(NAME) VALUES ('天杨') --SELECT * FROM test UPDATE test SET NAME=REPLACE(NAME,'天','地') 以上既把,name中所有的“天”字改为“地”......
此文被围观1616 分类: 数据库 标签:  ····

MySQL的source导入乱码解决方案2012-11-16

今天 在做mysql导入数据的时候出一乱码 最后查了一个,解决 ,现在把mysql source解决方法写在这里, 1,数据库备份命令(注意:要在cmd界面下先进入mysqldump的目录下才能使用mysqldump) mysqldump -uroot -p --default-character-set=gbk dbname > /root/newsdata.sql (例子: mysqldump -uroot -proot --default-character-set=gbk zjsb > d:/newsdata.sql ) 2,导入数据库 mysql -uroot -p --default-character-set=gbk use dbname source /root/newsdata.sql (例子: source  d:/newsdata.sql ) 这里多写点与此相关的数据操作 mysql> create database mydb2 character set utf-8; ERROR 1115 (42000): Unknown character set: 'utf' mysql> create database mydb2 character set utf8; Query OK, 1 row affected (0.00 sec) mysql> create database mydb3 character ...

MySql常用命令总结2012-11-16

最尽导数据到服务器上,那个速度啊,不说了,是同步过去的,一个全国的中小学校表花 了大半天的时间! 于是有了今天这篇文章; 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2、创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 3:选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5:创建一个数据库表 mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1)); 6:显示表的结构: mysql> DESCRIBE MYTABLE; 7:往表中加入记录 mysql> insert into MYTABLE values (”hyq”,”M”); 8:用文本方式将数据装入数据库表中(例如D:/mysql.txt) mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE; 9:导入.sql文件命令(例如D:/mysql.sql) mysql>use database; mysql>source d:/mysql.sql;//这里就解决了我们前面的问题...
此文被围观922 分类: 数据库 标签:  ····

如何修改MYSQL的ID递增的开始值?2012-10-09

mysql默认ID是从1开始递增的,现在根据项目要求从6位数开始增加, 我不经自已 如何修改MYSQL的ID递增的开始值? 修改账号表如下 : ALTER TABLE account AUTO_INCREMENT = 100000;...

本站使用ThinkPHP框架开发读图网主题,目前托管在阿里云,图片由读图网提供. 蜀ICP备12031064号

Copyright © 2011-2017adophper.com All Rights Reserved.