-1

首先,我是一个新手 Web 开发人员。

我的问题是“使用 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,数据库连接成功。但是“代码出现解析错误”,例如

$country = mysql_fetch_row(queryMySQL("----"))[0];

此外,它还显示其他错误,例如“表'emp.productcateogry'不存在”。

请给我一些建议。

4

1 回答 1

1

简短的回答是:不,您不应该期望它,尤其是在您的代码中使用 PHP 5.4的新功能时。

您所指的具体错误是:

代码出现解析错误

是因为线

$country = mysql_fetch_row(queryMySQL("----"))[0];

正在使用新功能:

函数数组解引用

在 PHP 5.4 之前,必须使用临时变量才能访问返回的特定索引,即:

$country_temp = mysql_fetch_row(queryMySQL("----"));
$country = $country_temp[0];

现在,由于您是新手开发人员,因此您应该注意一些事项。第一个也是最重要的是,mysql_函数已被弃用,并给出注释:

此扩展自 PHP 5.5.0 起已弃用,并将在未来删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。

换句话说,如果想要使用准备好的语句,则使用PDO ,否则使用MySQLi。在示例代码中使用 PDO 并仅获取一列的另一个优点是,一旦连接,您可以使用该函数PDOStatement::fetchColumn()仅获取一列,就像您现在尝试做的那样。

无论如何,我希望这个解释可以帮助您理解为什么如果使用特定的 PHP 5.4 功能就不能回到 PHP 5.3.x - 并且还对如何改进数据库连接和可以帮助您获得所需结果的可用函数有所了解不使用 PHP 5.4 提供的“数组取消引用”。^^

于 2013-05-04T08:12:59.223 回答