【问题标题】:Fatal error: Call to a member function prepare() on null in on line 28致命错误:在第 28 行的 null 上调用成员函数 prepare()
【发布时间】:2019-03-05 08:33:27
【问题描述】:

这是我的第一个 PHP 项目,也是第一次遇到这个经过一天的努力确实无法解决的 bug。 任何专家和善良的灵魂都可以建议如何解决这个错误吗?我的 PHP 版本是 5.6。

非常感谢,

提交表单后,显示以下错误

致命错误:在第 28 行调用一个成员函数 prepare() on null

我的数据库连接编码是

<?php 
 $DSN= 'mysql:host = localhost; dbname=cms4.2.1';
 $ConnectingDB = new PDO($DSN, 'root', '');

 ?>

Category page that shows line 28 got error on the POD function "prepare"
 if(empty($Category))
{
 $SESSION["ErrorMessage"] = "All fields must be filled out";
 Redirect_to("Categories.php");
 } elseif (strlen($Category)<3) {
 $SESSION["ErrorMessage"] = "Category Title should be greater than 3      
 characters";
 Redirect_to("Categories.php");
 } elseif (strlen($Category)>49) {
 $_SESSION["ErrorMessage"] = "Category Title should be less than 50  
 characters";
 Redirect_to("Categories.php");
  } else {
 global $ConnectingDB;
 $sql = "INSERT INTO category(title,author,datetime)";
 $sql .="VALUES(:categoryName,:adminName,:dateTime)";
 $stmt = $ConnectingDB->prepare($sql); // - > means PDO object rotation -   
 Line 28
 $stmt->bindValue(':categoryName',$Category);
 $stmt->bindValue(':adminName',$Admin);
 $stmt->bindValue(':dateTime',$DateTime);
 $Execute=$stmt->execute();

请帮忙。非常感谢。

【问题讨论】:

  • 请使用 var_dump 检查此行之后的 $ConnectingDB 变量:" global $ConnectingDB;"它接缝为空。

标签: php mysql pdo


【解决方案1】:

您可能需要在此处删除空格:mysql:host = localhost; dbname=cms4.2.1 将是 mysql:host=localhost;dbname=cms4.2.1

另外,将连接语句包装在 try-catch 块中,以查看是否正确连接。

try {
    $DSN = 'mysql:host=localhost;dbname=cms4.2.1';
    $ConnectingDB = new PDO($DSN, 'root', '');
    $ConnectingDB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo 'Connected to Database<br/>';
}
catch(PDOException $e){
    echo $e->getMessage();
}

【讨论】:

  • 嗨 Anurag 非常感谢。是由于间距使事情无法正常工作...谢谢您的帮助。我真的是 PHP 的新用户。
  • 我也想接受答案但找不到点击的地方? :-( 有什么建议吗?谢谢。
  • 您可以通过单击左侧的灰色大复选按钮来接受一个答案(如果对您有帮助)。如果您愿意,可以通过单击上方的灰色三角形为任何回答好的作者添加 +10 分。
猜你喜欢
  • 2020-03-11
  • 1970-01-01
  • 1970-01-01
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多