致命错误:无法重新声明getConnection()(之前在声明中声明)

时间:2014-08-13 11:46:53

标签: php mysql pdo

我有一个php文件,我连接到数据库。在文件的末尾,我需要另一个文件,我也有一个连接。这会导致错误:

"致命错误:无法重新声明getConnection()(之前已在......&#34中声明;

使用两个单独的文件对我来说很重要,所以我想知道如何在打开一个新文件之前关闭连接(在通过require获取的文件中)。

我认为closeCursor()会使它工作,但遗憾的是它并没有发生。我该如何解决这个问题?

require('../misc/database.php');
$db = getConnection();

$to = 'bla@gmail.com';
$from = 'bla@gmail.com';
$fromName = 'JaSama';
$subject = 'Informacja o nowym użytkowniku';
$body = 'Zarejestrował się nowy użytkownik. Edytuj ilość mieszkańców w miastach.';
$altBody = 'Zarejestrował się nowy użytkownik. Edytuj ilość mieszkańców w miastach.';
$created = date('Y-m-d H:i:s');

$statement = $db->prepare("INSERT INTO `mailqueue`(`to`, `from`, `fromName`, `subject`, `body`, `altBody`, `created`) VALUES (:to, :from, :fromName, :subject, :body, :altBody, :created)");

$statement->bindValue(':to', $to);
$statement->bindValue(':from', $from);
$statement->bindValue(':fromName', $fromName);
$statement->bindValue(':subject', $subject);
$statement->bindValue(':body', $body);
$statement->bindValue(':altBody', $altBody, PDO::PARAM_STR);
$statement->bindValue(':created', $created);

$statement->execute();
$statement->closeCursor();
require 'mailToDatabaseHandlowiec.php';

1 个答案:

答案 0 :(得分:2)

不是最漂亮的解决方案,但您可以在声明之前检查该功能是否存在:

if (!function_exists('getConnection')) { 
 function getConnection() {
   ....
 }
}

问题是你要包含一个具有相同功能的文件两次(甚至可能是同一个文件?)。确保使用require_once,并且在包含文件时不需要。