首先,我是一名新手网站开发人员。
我的问题是"使用PHP 5.4开发的网站可以在PHP 5.3配置的服务器上运行?"
(详细说明) 我在Windows上配置自己的Apache 2.4,MySQL 5.6和PHP 5.4.12。一切都好。但是当我将我的网站文件夹更改为另一台配置了WAMPserver的计算机时,会出现错误。此WAMPserver配置了Apache 2.2.11,PHP 5.3和MySQL 5.1.36。
我在这台机器上安装MySQL 5.6并且数据库已成功连接。但是#" Parse错误发生在代码中#34;比如
$country = mysql_fetch_row(queryMySQL("----"))[0];
此外,它还显示了其他错误,例如"表' emp.productcateogry'不存在"。
请给我一些建议。
答案 0 :(得分:1)
简短的回答是:不,你不应该期望它,特别是如果在你的代码中使用PHP的new features。
您所指的具体错误:
代码
发生分析错误
是因为行
$country = mysql_fetch_row(queryMySQL("----"))[0];
正在使用新功能:
函数数组解除引用
在PHP 5.4之前,必须使用临时变量来访问返回的特定索引,即:
$country_temp = mysql_fetch_row(queryMySQL("----"));
$country = $country_temp[0];
现在,由于你是一名新手开发者,你应该注意一些事情。 mysql_
函数的第一个也是最重要的是deprecated给出了注释:
自PHP 5.5.0起,此扩展程序已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。
换句话说,如果想要使用预准备语句,请使用PDO,否则使用MySQLi。使用PDO并在示例代码中只获得一列的另一个优点是,一旦连接,您可以使用函数PDOStatement::fetchColumn()
来获取一个类似于您现在尝试的列。
无论如何,我希望这个解释可以帮助您理解为什么如果使用特定的PHP 5.4能力,您可以回到PHP 5.3.x-还有一些理解如何改进数据库连接和可用的功能无需使用"数组解除引用"即可获得所需的结果这是PHP 5.4提供的。 ^^