当我将PDO数据库连接详细信息放入包含文件时,我收到错误

时间:2013-08-11 00:03:18

标签: php

我使用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');
?>

打印问候只是为了检查文件是否包含在内,它是什么。 问题是我现在在加载页面时出现此错误

"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文件是主页面的一部分时,它一切正常,它现在只使用它作为包含我得到错误。什么是rong,我该如何解决?

编辑:这是获取错误的页面顶部:

<?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';//
}

2 个答案:

答案 0 :(得分:1)

在include中使用文件路径,而不是网址。如果您使用网址,最好是请求网址并下载内容,但它可能是生成的网页,而不是php源文件。

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

另外,如果您需要该文件,请使用require。如果包含文件/网址失败,您将收到明确的错误消息,尽管在这种情况下它可能无法帮助您,因为网址有效。

答案 1 :(得分:1)

您使用其完整网址包含该文件。这意味着PHP应该看到你去那个URL时看到的相同的东西。当你转到那个URL时,你看到PHP代码(正如PHP所期望的那样)还是空白页?

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

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