admin管理员组

文章数量:1531960

2024年6月26日发(作者:)

PHP、Python、Ruby的比较(一)

主题:数据库、文件的操作

侯惠阳()

我和大家讨论的是(PHP、Python、Ruby)这三种脚本语言各自的特性。今后每期主题

不同,分别阐述他们的效率以及特点。这一期讨论的是:数据库、文件的操作。

一:PHP部分:

A:读取数据库方面

PHP对于数据库操作方面比较简单,可以使用MySQL给PHP写的扩展mysql*、mysqli*,

以及PHP官方自己写的Mysqlnd。

这里其实我主要想说的是mysql_connect();这个函数。注意第三个参数new_link(bool)。

如果用同样的参数第二次调用 mysql_connect(),将不会建立新连接,而将返回已经打开的

连接标识。参数 new_link 改变此行为并使 mysql_connect() 总是打开新的连接,甚至当

mysql_connect() 曾在前面被用同样的参数调用过。

普通操作:

$conn = mysql_connect(“localhost”,”root”,””,true);

mysql_select_db(“test”,$conn);

$query = mysql_query(“select * from test”);

while($rows = mysql_fetch_array($query)) {

}

带存储过程的操作:

Mysql

create procedure hhy(in yumail varchar(20),out _s int,out _uid int)

begin

if exists(select * from user where umail = yumail) then

set _s = 1;

select uid into _uid from user where umail = yumail;

else

set _s = 0;

end if;

end

PHP中使用:

mysql_query(“call hhy('test@',@_s,@_uid);”);

mysql_query(“select @_s,@_uid;”);

这部分以后在详细叙述。

B:文件操作

我这里想说的对于大文件的操作,比如一个文件有300M。怎么读?

虽然可以在PHP中申请比较大的内存。

ini_set('memory_limit', '300M');

但是如果服务器暂时不能提供很大的内存。需要怎么来优化读取大文件呢。

在统计系统的开发中,这个我和同事有一些交流和改进。我总结如下:

总结:对于PHP来说无论是库操作还是稳健操作都比较快。

二:Python部分:

A:读取数据库方面

Python 在这方面其实也比较简单。类似于PHP。

以Ubuntu 为例:

apt-get install python-mysqldb

代码:

#!/usr/bin/python

import MySQLdb

conn = t(host="localhost",user="root",passwd="",db="find")

cursor = ()

sel = e('select uid,umail from user')

results = ll()

for i in results:

print i;

()

B:文件操作

读取:

f = open("","r")

text = ()

print text

有木有发现和PHP很相似

$fp = fopen('',"r");

$c = fread($fp,filesize(''));

echo $c;

fclose($fp);

f = open('',"w")

('')

()

和PHP的函数差不多,用法也差不多。

三:Ruby部分:

A:读取数据库方面

Ruby 我了解有两种方式连接mysql

使用MySQL C客户端API。/en/mysql/ruby/

Ruby Mysql DBI。

/frs//12368/

require'rubygems';

require "mysql"

conn = _connect("localhost","root","","find")

puts "Mysql version:" + _server_info

res = ("select uid,umail from user")

while row = _row do

print "%s,%s/n",row[0],row[1]

end

B:文件操作

file = ("","r")

while(lines = )

puts lines

end

写文件:

file = ("","w")

"@"

Ruby on rails 这个框架开发起来比较快速

Ruby install

gem install

gem install rails

比较快速的开发一个站点

进入项目文件夹

rails server

总结:

从皮上面看:我们做了这三种语言在数据库(mysql)和文件的读写操作。我个人感觉

在程序的难易程度以及书写上PHP比较简洁。由于Ruby和Python一样。一切皆是对象。

所以其实在程序内部都是实例化的。消耗一些资源。据了解PHP7也将准备一切皆是对象的

改进。

从程序运行上来看:

先总结一些函数

PHP的常用函数

mysql_connect();

mysql_query();

mysql_fetch_array();

fopen();

fread();

fwrite();

等等

Python的常用函数

open(“filename”,”属性”)

句柄.fread(数量)

句柄.fwrite()

句柄.close()

句柄.readlines()

t()

句柄.cursor()

e 执行SQL

ne() 读取一行

any(5) 读取5行

ll() 所有

句柄.close()

Ruby的常用函数

(“filename”,”属性”)

句柄.gets 读取资源

() 写文件

句柄.close

以MYSQL API

_connect()

句柄.query()

句柄资源.fetch_row

个人感觉Python 和 Ruby 好多对象的大小写要求严格。所以必须注意。至于效率

个人感觉PHP还是很有优势。书写简单,相应的资源也很多。下一期我们有机会讨论一下

form表单和抓取部分。

个人网站

本文标签: 文件数据库连接操作读取