【发布时间】:2015-04-23 09:28:05
【问题描述】:
我有两个 php 文件,其中一个是一个类。我正在尝试包含具有连接到数据库的$conn 变量的文件。问题是我收到了这个错误:
Notice: Undefined variable: conn in /home/yuran/public_html/avec/DatabaseContent.php on line 20
Fatal error: Call to a member function prepare() on a non-object in /home/yuran/public_html/avec/DatabaseContent.php on line 20
代码如下:
连接.php
<?php
require_once('constants.php');
try{
//Create a database connection
$conn = new PDO("mysql:host=".DB_SERVER.";"."dbname=".DB_NAME,DB_USER, DB_PASS);
} catch(PDOException $pe){
die("Could not connect to the database ".DB_NAME.": ".$pe->getMessage());
}
?>
数据库内容.php
<?php
include('inc/conn/connection.php');
class DatabaseContent{
public function fetchAllRows($table, $rowOrder, $direction){
$this->sql .= "ORDER BY :roworder :direction";
$q = $conn->prepare($this->sql);
$q->execute(array(':table'=>$table, 'roworder'=>$rowOrder, ':direction'=>$direction));
$q->setFetchMode(PDO::FETCH_ASSOC);
return $q;
}
【问题讨论】:
-
只是传递连接变量作为参数?!
-
您的问题是
$conn不为您尝试使用它的类所知。将其作为参数传递给函数并在那里使用。 -
哦,有道理,这意味着我不必将 connection.php 文件包含到类中。
-
@Rizier123 非常感谢
-
@RyanJ 感谢您的帮助