YOYO的最新BLOG文章

Jan
25

SUN收购MySQL已经好几天了,这几天对PHP程序员来说,似乎一切都是这么突然,而我老却感觉哪里不对劲似的。

MySQL是最大的开源数据库系统,有着庞大的用户群体,几乎每一个使用过PHP的人都曾用过这个数据库。一直以来,MySQL都以最易学的数据库来标榜着自己,据说最快十分钟就可以入门,所以它成为了最成功的开源数据库系统。

开源并不等于不盈利,MySQL后来也推出企业版本,而且盈利颇丰。而最近这次收购,也开创了开源软件历史上第一个开源收购案,这也是一个历史的突破,就是不知道这次突破是好还是不好。

说到这次收购,总要说一点利弊:对于有利的方面我实在没看出来,唯一一点值可能就是找到了一个强大的公司来支持,对于不利的方面嘛,这要看SUN到底要对MySQL做什么了,如果仅仅是一些产品上的整合也许会更好一些,而如果是对其动大手笔的话,那不见得是一件好事。

到底这次收购是利大于弊,还是弊大于利呢,让我们拭目以待吧。

Tags: , ,
Posted in 想说就说
Nov
30

前一段时间我写过一篇在Windows上安装Apache+PHP+MySQL的博客,而最近由于要配置一台服务器,我又不得不在Windows2003下的IIS6.0上配置了一下PHP+MySQL的环境。这次配置和两年前在Windows2000上配置相比,还是有一些的差别,网上关于这方面的资料不少,而是莫衷一是的东西太多,所以写就此文,希望能对看到此文的朋友有所帮助。

一、安装环境
操作系统是 Windows 2003 英文版+IIS 6.0, PHP, MySQL 的最新版本是截止到 2007.09.07,分别在其官网下载的:
* PHP 5.2.5 (Windows Binaries PHP 5.2.5 zip package): http://www.php.net/downloads.php
* MySQL 5.1 Windonws: http://dev.mysql.com/downloads/

二、由于Windows 2003默认安装了IIS6.0,所以安装这步省略。

三、在Windows 2003下安装 MySQL 5.1
MySQL 的安装比较简单,它提供了一个 win32 的安装包。下载后根据提示一路next安装即可。安装完成后,会问你要不要到官网注册,跳过即可。然后会问你是否 Configure the MySQL Server now,选中并继续,然后根据提示,设定 字符集,以及 root 管理员的密码即可。

四、在 Windows 2003 下安装 php 5.2.5
1. 将下载的 php 5 ZIP 包直接解压,我直接将 PHP 5.2.5 zip 文件解压到 C:\php 目录下面。安装 php 不建议使用 win32 安装程序(主要是以后安装扩展麻烦)。

2. 在资源管理器中进入 php 的安装目录,将 php.ini-recommended 复制一份,命名为 php.ini。然后打开 php.ini。

3. 找到:

;extension=php_mysql.dll

将前面的 ; 号去掉, 改成:

extension=php_mysql.dll

然后把php.ini复制到Windows目录下面,把libmysql.dll复制到Windows下面的System32目录。这个地方很多文章说把php5ts.dll也复制到system目录的,而经过我的测试发现,不用复制也是可以的(有不同看法的可以在下面提出来)。

4. 找到:

extension_dir = “./”

将其改为你的 php 安装目录下 ext 子目录的绝对路径。例如我的:

extension_dir = “C:/php/ext/”

这步很重要 。否则接下来 php 会找不到 php_mysql.dll 模块,无法装载。
阅读全文 ->

Tags: , , , ,
Posted in Server
Nov
23

今天的这篇文章用来讨论如何解决导入mysql大数据文件的问题,其实说的简单了就是一条SQL语句,而如果你是一名SQL高手,那完全可以略过此文。

对于经常使用MYSQL的人来说,phpmyadmin是一个必备的工具。这个工具非常强大,几乎可以完成所有的数据库操作,但是它也有一个弱点,对于往远程服务器上导入较大的数据文件的时候会速度奇慢,甚至出现长期没有响应的情况。

为什么会出现这样的情况呢?当我们选择一个sql数据文件并提交的时候,服务器首先要先把文件上传到服务器,然后才会执行导入代码把数据导入到数据库。我们知道phpmyadmin是通过web方式上传的数据文件,而web方式上传是很不稳定的,尤其是网速慢的时候,这就是为什么我们会有那么多次在电脑前面苦苦等待而最终却没有结果的原因。

通过上面的分析,我们知道这个问题是出在web上传而非导入程序,所以如果能避免通过web上传这个问题就好办了。我们可能会想到那功能强大的ftp上传工具,可是phpmyadmin无法选择远程路服务器上的文件,这是很郁闷的。

这里我们要放弃phpmysqladmin,通过mysql语句来导入数据库。很多人会纳闷怎么来执行SQL语句,这是一个关键的问题,这需要你的空间支持SSH(Secure Shell Protocol),并且你还得会一些linux命令
阅读全文 ->

Tags: , ,
Posted in PHP | MySQL
Oct
25

今天遇到一个挺有意思的现象,在使用phpmyadmin管理mysql数据库的时候,发现执行一条sql语句的时间竟然是-0.0000秒。我就奇怪了,0秒就0秒吧,怎么弄出个负0来啊?再怎么说sql语句的执行时间也不可能是负数啊,这phpmyadmin的程序是基于啥计算的呢?截图如下:

phpmyadmin计算的mysql执行时间

不知道这算不算phpmyadmin的一个bug,不过这个bug是挺难发现的,我是才换了新机器,而且是连着点了很多次才出现这么一次,最多也不会大于十分之一的概率。

我平时计算mysql的执行时间一般用microtime()函数来计算,不过用这个函数怎么计算也不会得到负数的啊,真不知道phpmyadmin是怎么计算的,有时间真该研究研究。

Tags: ,
Posted in PHP | MySQL
Oct
21

最近很多朋友说他的MySQL数据库里面的数据是乱码,读取出来在页面显示也不正常,这可能是很多学习PHP操作数据库的时候遇到的一个问题,当然英文除外。

对于这个问题,有两种情况需要说明一下:

第一、写入数据库和读取数据库的页面编码要一致。例如写入的时候页面的编码是UTF8,那读取的时候你也要用UTF8编码的页面显示,这样就不会出现乱码了。这种情况下最好把数据库里面的编码设置为utf8-general-ci,因为这种情况数据在数据库中是乱码的,但是显示出来是正常的,所以设置为别的编码的时候容易出现写入失败。

第二、连接数据库的时候添加mysql_query(”SET NAMES 编码”);。例如写入的时候想用UTF8,则在连接数据库之后添加mysql_query(”SET NAMES UTF8″);,这样所有的数据写入和读取都是以UTF8编码进行的,所以这种情况下数据库中的数据也是正常的,而且这种情况不容易出现错误。

对于这两种情况,我觉得首先得记住第一种,就是写入和读取的时候一定要保证页面的编码相同,这也是第二条的一个基础,然后再记住mysql_query(”set names 编码”);这条语句,这样在你的非英文页面中就不会出现乱码了。

Tags: ,
Posted in PHP | MySQL, 刀光剑影
Oct
15

此文章的安装方法适用于Windows XP下的Apache+PHP+MySQL安装。

1. 安装环境
操作系统是 Windows XP 中文版, Apache, PHP, MySQL 的最新版本是截止到 2007.09.07,分别在其官网下载的:
* Apache 2.2.6:http://apache.mirror.phpchina.com/httpd/binaries/win32/
* PHP 5.2.4 (Windows Binaries PHP 5.2.4 zip package): http://www.php.net/downloads.php
* MySQL 5.0.45 Windonws: http://dev.mysql.com/downloads/

2. 安装的目录结构规划
为了方便维护,可以将服务器软件安装在系统盘(C盘)而把自己的文件定位到其他盘,这样对于以后的维护很重要。

3. 在 Windows XP 下安装 Apache 2.2.6
Windows XP 下的安装
1. 运行 apache 2.2.6 的安装程序,根据提示一路 Next 即可。在 Server Information 的 Network Domain、Server Name 字段随便填上一个域名即可,如php.com,然后根据提示一路 Next 完成即可。

2. 在安装结束时,会弹出一个 DOS 窗口,然后就消失了,这是系统apache自动启动了。

4. 在 Windows XP 下安装 php 5.2.4
1. 将下载的 php 5 ZIP 包直接解压,我直接将 PHP 5.2.4 zip 文件解压到 d:\php 目录下面。安装 php 不建议使用 win32 安装程序(主要是以后安装扩展麻烦)。

2. 在资源管理器中进入 php 的安装目录,将 php.ini-dist 或 php.ini-recommended 复制一份,命名为 php.ini。然后打开 php.ini。

3. 找到:

;extension=php_mysql.dll

将前面的 ; 号去掉, 改成:

extension=php_mysql.dll

4. 找到:

extension_dir = “./”

将其改为你的 php 安装目录下 ext 子目录的绝对路径。例如我的:

extension_dir = “D:/php/ext/”

这步很重要 。否则接下来 php 会找不到 php_mysql.dll 模块,无法装载。

5. 在“控制面板”->“系统”->“高级”->“环境变量”,在“系统变量”里面找到path,编辑path的变量值,添加你的php目录D:\php,前面一定要用分号(;)把它和前面的值分开。 阅读全文 ->

Tags: , , ,
Posted in Server, 刀光剑影
Sep
22

这几天我一直在做从bo-blog转移到wordpress的尝试,昨天晚上遇到了转化后的乱码问题。遇到乱码并不郁闷,郁闷的是我不知道为什么,后来我是通过添加mysql_query(”SET NAMES UTF8″);解决了这个问题,我知道这句SQL的作用,但是我还是不知道为什么我原来的转换会出现乱码,因为之前我同样的操作都没有出现过乱码问题。

在百思不得其解的时候,我尝试在写入一条SQL语句后直接用我的页面把刚才写入的数据显示出来,让我兴奋的是这次不是乱码,而在wordpress的页面显示的还是乱码,于是我立即去wordpress文件里面找SET NAMES的SQL语句,最终我在wp-includes/wp-db.php里面找到了它,至此我彻底明白了。

对于解决MYSQL乱码的问题,总结如下几点:

第一、为你的链接数据库的页面增加SET NAMES语句,如:SET NAMES UTF8,它的作用是设置本次数据库联接过程中,数据传输的默认字符集是UTF8,同时在写入和展示数据的页面保证显示的是UTF8,这样你的页面就不会出现乱码问题了。
第二、你可以不用SET NAMES语句,但是请一定保证写入数据的页面和展示数据的页面要用同样的编码,并且数据库编码最好用UTF8,因为用其他编码容易在写入的时候出现错误。保证写入数据的页面和展示数据的页面用相同的编码也不会出现乱码问题,但是这个时候写入的数据的编码并不等于你页面的编码
阅读全文 ->

Jul
27

很多人都认为PHP+MYSQL组合只能做一些中小型站点,于是那些做大型网站,用所谓的“高级”语言的人就开始鄙视用php的人了,说PHP这里不行,那里不是的。对于这样的人我只能说他见识太少了,不是你没见过用他做的大网站就说他不能做大网站。

PHP语言是一种快速开发的语言,所以它的设计定位是中小型网站以及较大型网站,但是PHP的出色表现让我们不得不佩服,它不但能实现它本应该能做的类型的网站,还时不时的迈进做大型网站的行列。对于网络比较了解的人都知道wiki,世界上最大的wiki网站是维基百科,所用的系统就是PHP+MYSQL架构实现的mediawiki系统。维基百科现在全球排名第九,你敢说wikipedia是中小型网站?说一个大家耳熟能详的网站——百度,百度里面很多的系统架构都是用的php+mysql,你敢说百度也是中小型网站?还有那名人博客——新浪博客,一整套的php系统,而现在新浪博客的流量展到新浪流量的50%左右。这些“中小型网站”都用php完成了他们想做的工作,PHP不但完成了,而且还是很出色的完成了,你用他们的系统时感觉慢过么?

例子不用再举,对于用PHP做程序的人,不要动不动就被周围的言论说说服,其实PHP+MYSQL一点都不弱,而且在大型网站里面占有很大的一个比例。这是一个铁的事实,不容争辩。
阅读全文 ->

Tags: ,
Posted in 想说就说