Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:无法重新声明getConnection()(以前在中声明_Php_Mysql_Pdo - Fatal编程技术网

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

Php 致命错误:无法重新声明getConnection()(以前在中声明,php,mysql,pdo,Php,Mysql,Pdo,我有一个连接到数据库的php文件。在文件末尾,我需要另一个我也有连接的文件。这会导致错误: “致命错误:无法重新声明getConnection()(以前在中声明过…” 使用两个单独的文件对我来说很重要,因此我想知道如何在打开一个新文件(在通过require获取的文件中)之前关闭连接 我原以为closeCursor()可以让它工作,但不幸的是它没有发生。我如何解决这个问题 require('../misc/database.php'); $db = getConnection(); $to =

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

“致命错误:无法重新声明getConnection()(以前在中声明过…”

使用两个单独的文件对我来说很重要,因此我想知道如何在打开一个新文件(在通过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';

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

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

问题是您两次包含具有相同函数的文件(甚至可能是同一个文件?)。请确保在包含文件时使用require\u一次,而不是require。

public function\uu destruct()
这不是连接问题。您正在包含一个包含已在中声明的函数名的文件。您不能两次声明同一个函数名。我认为您正在重新加载一个已加载的文件。感谢您指出这一点。这并没有解决问题,但这肯定是我的错误。我们总是
需要一个(“…”);
而不是
require(“…”)
在你的项目中的任何地方,给出的代码都不起作用,但是用getConnectionTwo创建一个database2.php,然后要求它起作用。我知道这真的很难看,但现在这是我解决问题的唯一方法。我不能接受你的答案,因为它不起作用,但它已经足够让我投票了,因为它引导我走上了正确的道路。