未定义的类常量修复

时间:2019-04-09 14:01:35

标签: php

我正在用php编码网站,但是当我对其进行测试时,该页面指示HTTP错误500。因此我搜索了该问题,并找到了一个日志文件,该文件指示我以下内容:

  /p/Applications/MAMP/htdocs/SITE/config/connect.php中的

'ERR_WARNING':3
   堆栈跟踪:
   #0 /Applications/MAMP/htdocs/SITE/config/functions.php(5):require()
   #1 /Applications/MAMP/htdocs/SITE/index.php(4):getArticles()
   #2 {main}
在第3行的/Applications/MAMP/htdocs/SITE/config/connect.php中抛出

然后我检查了functions.php文件,但发现没有错误,请您帮我解决此问题。

这是我的functions.php文件:

<?php
// ARTICLE FUNCTION
    function getArticles()
    {
        require "./config/connect.php";
        $req = $bdd->prepare('SELECT id, title FROM articles ORDER BY id DESC');
        $req->execute();
        $data = $req->fetchAll(PDO::FETCH_OBJ);
        return $data;
        $req->closeCursor();
    }
?>

这是我的connect.php文件:

<?php 
    $bdd = new PDO('mysql:host=localhost;dbname=blog;charset=utf8','root','root'); 
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERR_WARNING); 
?>

然后,我将replace命令放在function.php中的关闭光标1下,但是,它没有解决问题

然后,我更改了连接文件和数据库中的密码,以使它们现在相同。

但这并不能解决显示以下消息的问题:

  

[09-Apr-2019 15:15:31 UTC] PHP致命错误:未捕获的PDOException:SQLSTATE [HY000] [1045]在/中拒绝用户'root'@'localhost'(使用密码:> YES)的访问应用程序/MAMP/htdocs/SITE/config/connect.php:2
  堆栈跟踪:
  #0 /Applications/MAMP/htdocs/SITE/config/connect.php(2):PDO-> __ construct('mysql:host = loca ...','root','123')
  #1 /Applications/MAMP/htdocs/SITE/config/functions.php(5):require('/ Applications / M ...')
  #2 /Applications/MAMP/htdocs/SITE/index.php(4):getArticles()   #3 {main}
   在第2行的/Applications/MAMP/htdocs/SITE/config/connect.php中抛出

然后,我意识到我在连接文件中输入的密码错误,因此我进行了更改。我又回到了第一个错误:

  

[09-Apr-2019 16:40:18 UTC] PHP致命错误:未捕获错误:/Applications/MAMP/htdocs/SITE/config/connect.php:3中未定义的类常量'ERR_WARNING':<< />   堆栈跟踪:
  #0 /Applications/MAMP/htdocs/SITE/config/functions.php(5):require()
  #1 /Applications/MAMP/htdocs/SITE/index.php(4):getArticles()
  #2 {main}
    在第3行的/Applications/MAMP/htdocs/SITE/config/connect.php中抛出

1 个答案:

答案 0 :(得分:1)

我终于找到了解决方案。 在连接文件中,第3行是:

$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERR_WARNING);

但是有一个拼写错误:常量ERR_WARNING不存在-应该为ERRMODE_WARNING。用正确的名称替换该常数可解决此问题:

$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

感谢您的所有回答和借口,困扰您解决这个简单问题的时间