为什么我两次调用相同的函数会得到一个php致命的错误?

时间:2017-01-20 22:40:31

标签: php pdo

https://plnkr.co/edit/ZNlAyky7TzT4jknpnoDJ?p=preview

这是一个链接到plnkr,到目前为止我写的所有代码。我一直在

  

致命错误:无法重新声明connect_to_db()(之前已在声明中声明)   /var/www/html/News/config/dbconnect.php:5)in   第5行的/var/www/html/News/config/dbconnect.php

plunkr没有文件夹结构,因为我无法弄清楚如何添加文件夹,但这里是我的dbconnect.php代码

 <?php
        $pdo = null;
        function connect_to_db()
        {
            $dbengine   = 'mysql';
            $dbhost     = 'localhost';
            $dbuser     = 'root';
            $dbpassword = 'password';
            $dbname     = 'news';

            try{
                $pdo = new PDO("".$dbengine.":host=$dbhost; dbname=$dbname", $dbuser,$dbpassword);
                $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
                return $pdo;
            }
            catch (PDOException $e){
                $e->getMessage();
            }
        }

第5行没有调用db connect所以我不知道发生了什么

1 个答案:

答案 0 :(得分:1)

您正在使用

require __DIR__.'/dbconnect.php'

在你的Index.php和你的functions.php中,同时需要index.php中的functions.php。

因此connect_to_db()被定义了两次。请改用require_once来防止这种情况:

require_once __DIR__.'/dbconnect.php'

http://php.net/manual/en/function.require-once.php