php版本之殇
admin
2023-06-21 10:42:12
0次

苦心学习Php有一段时间了,仍然停留在入门初级阶段,仍然写不出自己的作品来,就算照着别人的现成的教材,一字不落的写在板板上,仍然会有层出不穷的错误,揪其因果,实乃版本之故。有位大虾,曾写下如下博文:

从PHP5.3开始加入了一个新的报错级别DEPRECATED,即将废弃/过期。

在php5.3被放弃的函数有: 

call_user_method() //使用 call_user_func() 替代
call_user_method_array() //
使用call_user_func_array() 替代
define_syslog_variables()
dl()
ereg() //
使用 preg_match() 替代
ereg_replace() //
使用 preg_replace() 替代
eregi() //
使用 preg_match() 配合 'i' 修正符替代
eregi_replace() //
使用 preg_replace() 配合 'i' 修正符替代
set_magic_quotes_runtime() //
以及它的别名函数magic_quotes_runtime()
session_register() //
使用 $_SESSION 超全部变量替代
session_unregister() //
使用 $_SESSION 超全部变量替代
session_is_registered() //
使用 $_SESSION 超全部变量替代
set_socket_blocking() //
使用stream_set_blocking() 替代
split() //
使用 preg_split() 替代
spliti() //
使用 preg_split() 配合 'i' 修正符替代
sql_regcase()
mysql_db_query() //使用 mysql_select_db() 和 mysql_query() 替代
mysql_escape_string() //
使用mysql_real_escape_string() 替代
mysql_close(); //
将不支持全部关闭, 需要改为:mysql_close($link);
废弃以字符串传递区域设置名称. 使用 LC_* 系列常量替代.
mktime()
的 is_dst 参数. 使用新的时区处理函数替代.
PHP 5.4
:
mcrypt_generic_end()
mysql_list_dbs()
PHP 5.5
:
mcrypt_cbc()
mcrypt_cfb()
mcrypt_ecb()
mcrypt_ofb() 

其中,PHP 5.3是废弃函数的开始,很多常用的以前的正则ereg全部替换preg,但是魔术引号。居然也从PHP 5.3开始弃用,PHP 5.4就移除了。这个算是PHP 5.3的一个大变动吧。
PHP 5.4
开始新增了很多特性,新增很多特殊写法。(www.jbxue.com 
脚本学堂)

至于PHP 5.5,居然把MYSQL这个扩展去掉了,建议使用MYSQLI或者PDO!
用了5.5很多程序都会报错,提示mysql_connect即将过期!!会看到如下错误:
Deprecated: mysql_connect(): The mysql extension is deprecated and will beremoved in the future: use mysqli or PDO instead in E:testnew 6.php on line 6
PHP5
相对于4的跨进最大的就是类的部分,而影响更多的就是废弃这些老习惯的东西吧。
虽然版本一直在升级,但是终究市场上还是大量的5.1.6-5.2.17。5.3开始废弃很多特性,这就导致了很多程序也不敢直接上,5.5.直接秒杀了大量的开源产品!


现如今,能够在开源市场找到最新版的教程,屈指可数,或者根本没有,只能在旧版的教程基础之上勤加练习。昨天一段很简单的连接数据库操作的代码愣是把我搞得稀里哗啦的。代码如下:

mysql_connect("localhost","root","root");

mysql_select_db("exer");

$result=mysql_query("select * from wasa");

while($row=mysql_fetch_array($result,MYSQL_ASSOC)){

print_r($row);

echo "
\n";

}

?>

好吧,够简单了吧,一目了然,无非就是要在数据库里面把数据以数组的形式取出并打印出来。可是,就这么简单的代码,在高于php 5.3版上一运行,出错了,报的错误搞的人晕头转向,虽然描述得很清楚,但却没有给出解决的方法。如下图所示:


php版本之殇

将:mysql_connect()改为:mysqli_connect(),结果呵呵了:

php版本之殇

你这错误,比我代码的行数还多,叫我情何以堪!php版本之殇

明明知道这个是PHP版本的问题导致的,可是如果是几千行,几万行的代码,因为版本的升级就死光光了,想想实在是令人恐怖的一件事。所以,那些在5.3版以前开发的网站或者管理系统,要升级的话,千万要三思后行了。其实,这段代码是没有问题的,下图是在windows server 2003系统上的WEB环境:

php版本之殇

将代码中的数据库和表改动一下,运行的话是没有任何报错信息的,除了编码问题导致乱码外:

mysql_connect("localhost","root","root");

mysql_select_db("ecshop");

$result=mysql_query("select * from ecs_tag");

while($row=mysql_fetch_array($result)){

print_r($row);

echo "
\n";

}

?>

运行结果:

php版本之殇

处于菜鸟的心态,希望有大虾看到这篇小文章能够给予指点一二。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...