【问题标题】:Fatal error: Uncaught Error: Call to undefined function dbconnect() [duplicate]致命错误:未捕获的错误:调用未定义的函数 dbconnect() [重复]
【发布时间】:2019-03-05 13:58:02
【问题描述】:

我是新来的。我正在开发的网站有问题。你能帮我解决一下吗?

错误 -

致命错误:未捕获错误:调用未定义函数 dbconnect() /storage/ssd4/448/8893448/public_html/blog/index.php:5 堆栈跟踪:#0 {main} 抛出 /storage/ssd4/448/8893448/public_html/blog/index.php 在第 5 行

这里是连接.php

<?php

class connection{

    public $db_host = 'localhost';
    public $db_name = 'id8893448_ifians';
    public $db_user = 'id8893448_ifdb';
    public $db_pass = 'admin';

    public function dbconnect()
    {
        try{
            $conn = new PDO("mysql:host=".$this->db_host.";dbname=".$this->db_name,$this->db_user,$this->db_pass);
           $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
        catch(PDOException $e)
        {
            echo 'ERROR: ' . $e->getMessage();
        }    
        return $this->conn;
    }
}

?>

和 index.php

<?php

include 'functions/connect.php';
include 'functions/queries.php';
$conx = dbconnect();
$recentArray = Array();
$recent = recents() ;
$resultRecent = mysqli_query($conx, $recent);
$blogPost = Array();
while($rowRecent = mysqli_fetch_assoc($resultRecent)) {
    array_push($recentArray, $rowRecent);
};

//var_dump($recentArray);



$selectTitle = selectTitle();
//print_r($selectTitle);

$selectAuthor = selectAuthor();
$selectDate = selectDate();

$selectTitleArray = Array();
$selectAuthorArray = Array();
$selectDateArray = Array();

$selectTitleResult = mysqli_query($conx, $selectTitle);
$selectAuthorResult = mysqli_query($conx, $selectAuthor);
$selectDateResult = mysqli_query($conx, $selectDate);

while($selectTitleRow = mysqli_fetch_assoc($selectTitleResult)) 
{
    array_push($selectTitleArray, $selectTitleRow);
};

while($selectAuthorRow = mysqli_fetch_assoc($selectAuthorResult)) 
{
    array_push($selectAuthorArray, $selectAuthorRow);
};

while($selectDateRow = mysqli_fetch_assoc($selectDateResult)) 
{
    array_push($selectDateArray, $selectDateRow);
};
//print_r($selectTitleArray);






if (isset($_GET['query']))
{
    $blog = modifiedQuery($_GET['query'],$_GET['value']);
}

elseif (isset($_GET['title']) || isset($_GET['author']) || isset($_GET['created']))
{
    $blog = submitQuery($_GET['title'],$_GET['author'],$_GET['created']);
}
else 
{   
        $blog = originalQuery();
}

//print_r($blog);

$result = mysqli_query($conx, $blog);

//print_r($result);

while($row = mysqli_fetch_assoc($result)) 
{
    array_push($blogPost, $row);
};



include 'templates/template.php';


?>

【问题讨论】:

  • 原因是 dbconnect 在一个类中,而您正试图在一个类中使用一个函数,很抱歉,但这不起作用
  • 试试$conx = (new connection)-&gt;dbconnect(); - 代替

标签: php database


【解决方案1】:

您需要创建一个 connection 类的实例,然后您可以使用它来调用它的 dbconnect 函数

$newcon = new connection();
$conx = $newcon->dbconnect();

【讨论】:

  • 创建一个局部变量$conx = (new connection)-&gt;dbconnect() 就足够了。只是说。或者您可以添加该函数并让它执行相同的操作,但返回(显然)。
  • 确实如此,但如果有其他功能$newcon 可能会有用。
猜你喜欢
  • 2021-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-22
  • 2017-01-27
  • 2016-04-07
  • 2017-08-19
相关资源
最近更新 更多