0

我使用 PDO 连接到 MySQL,一切正常。为了整理,我制作了一个包含 PDO 代码的包含文件。这是完整的包含文件:

<?php

$pdo = new PDO('mysql:host=localhost;dbname=******', '******',
'******');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');

printf('hello');
?>

print hello 只是为了检查文件是否被包含在内。问题是我现在在加载页面时收到此错误

"Fatal error: Call to a member function query() on a non-object in /home3/danville/public_html/test/parkattractions.php on line 9"

第 9 行是$result = $pdo->query($query);

当 db-connect 文件是主页的一部分时,一切正常,现在只是将它用作包含我得到错误。出了什么问题,我该如何解决?

编辑:这是出现错误的页面顶部:

<?php
include 'http://www.themeparkfocus.com/db-connect.php';

try
{
$park_id = $_GET['park_id'];
$query="SELECT * FROM tpf_parks WHERE park_id = $park_id";
$result = $pdo->query($query);
}
catch (PDOException $e)
{
$output = 'Unable to connect to the database server.';
//include 'output.html.php';//
}
4

2 回答 2

1

在包含中使用文件路径,而不是 url。如果您使用 url,最多只能请求 url 并下载内容,但它可能会是生成的页面,而不是 php 源文件。

只需http://www.themeparkfocus.com/db-connect.php在浏览器中打开,您就会看到包含的内容:没有 PHP 代码。

此外,require如果您需要该文件,请使用。如果包含文件/url 失败,您将收到一条明确的错误消息,尽管在这种情况下它可能对您没有帮助,因为 url 是有效的。

于 2013-08-11T00:12:14.550 回答
1

您正在使用其完整 URL 包含该文件。这意味着 PHP 应该看到与您访问该 URL 时看到的相同的内容。当您访问该 URL 时,您看到的是 PHP 代码(正如 PHP 所期望的那样)还是一个空白页面?

如果您看到一个空页面,PHP 实际上包含一个空文件并且不执行任何操作。

您应该包括使用服务器端路径(如require_once '../db-connect.php';)。

于 2013-08-11T00:13:45.650 回答