0

当我尝试运行我的 php 脚本时,我不断收到错误 500。我查看了日志,它读到了这个。2012 年 8 月 17 日 22:35:59] PHP 致命错误:require() [function.require]:无法打开所需的“MYSQL”(include_path='.:/usr/lib64/php:/usr/lib/php: /usr/share/pear') 在第 3 行的 /home5/virtua15/public_html/gatewayaviation/aircraft_list.php 下面是我脚本的第 1 行到第 5 行

<?php
require('http://gatewayaviation.virtual-aviation.org/includes/config.inc.php');
require (MYSQL);
$q = "SELECT CONCAT(aircraft_name, tail_number) AS aircraft, aircraft_type AS at, location AS loc, FROM aircraft GROUP BY location ORDER BY tail_number ASC";
$r = mysqli_query($dbc, $q);

这背后的原因是什么。我一直在为我正在处理的项目中的许多其他页面使用相同的编码,并且没有任何问题。你能对此有所了解吗?

4

4 回答 4

2

提供远程文件require是一种安全威胁,因为远程网站可以更改该文件中的 PHP 代码,从而损害您的服务器。此外,包含远程 PHP 文件不会包含它包含的 PHP 代码,只会包含生成的 HTML。正如您通过访问浏览器中的链接所看到的那样,它会产生一个空输出。

如果该文件本地托管在您的服务器中,请提供该文件的路径,而不是 URL,例如:require '/var/www/website/includes/config.inc.php'

至于 require(MYSQL),我假设您正在尝试包含一个名为 MYSQL 的文件?如果是这种情况,请将其放在引号中并确保指定正确的路径,如下所示:require 'MYSQL';否则解释器会将 MYSQL 视为未定义的常量。我不知道该文件可能包含什么,但如果它是 PHP 代码,最好给它一个 .php 扩展名,否则人们可能能够下载它并查看其中的代码。

于 2012-08-18T05:11:57.163 回答
0

我实际上发现了这段代码的问题。我在 SQL 查询中的 loc 后面放了一个逗号,这破坏了脚本。现在一切都解决了。

于 2012-09-03T22:55:03.440 回答
-1

首先,我会推荐 OOP 的世界。接下来,它没有出现在您的第三行中定义 MYSQL,而且我从未见过这样做过。如果连接到您的数据库是问题,这里是您的参考。http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/connect-to-mysql-database.aspx

于 2012-08-18T04:50:21.923 回答
-1

require('http://gatewayaviation.virtual-aviation.org/includes/config.inc.php');

不建议在 php 中,你也不能只是

require (MYSQL); 

而是你必须连接到数据库做这样的事情

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

$q = "SELECT CONCAT(aircraft_name, tail_number) AS aircraft, aircraft_type AS at, location AS loc, FROM aircraft GROUP BY location ORDER BY tail_number ASC";
$r = mysqli_query($mysqli, $q);

我认为您需要为傻瓜获取教程或 php 并阅读

于 2012-08-18T04:53:23.113 回答