如何在try命令中执行多个语句

时间:2018-06-08 17:26:55

标签: php pdo try-catch

我正在尝试使用try块建立PDO连接,然后在建立连接后打印成功消息。我的代码如下:

  

index.php:

<?php
require_once './vendor/autoload.php';

$con = new \app\db\Connect();


if ($con)
{
  echo 'connection successful.';
}
  

connect.php

<?php
namespace app\db;

class Connect
{
  public function __construct()
  {
    // set the connection variables
    $host = 'localhost';
    $dbname = 'pdoposts';
    $username = 'root';
    $password = 'root';

    // create the DSN
    $dsn = 'mysql:host=' . $host . ';dbname=' .$dbname;

    // create PDO connection
    try {
      static $con;
      $con = new PDO($dsn, $username, $password);
    } catch(Exception $e) {
      echo $e->getMessage();
    }

    return $con;
  }
}

我的问题是我无法使用$con文件中try - catch命令中创建的index.php。我很抱歉,如果这个问题看起来非常基本和基本,但请帮助我理解它是如何工作的。
非常感谢你提前。

1 个答案:

答案 0 :(得分:0)

根据以下答案:
The solution here on stackoverflow

我刚刚在PDO之前添加了反斜杠,并使其成为\PDO,现在它正常运行。以下链接有助于了解PHP Callbacks以及它们如何更好地运作:
Using namespaces: fallback to global function/constant

我应该记住我想要使用namespace的{​​{1}}。在这种情况下,使用PDO会告诉php使用\中的PDO,而不是Global Namespace中代码运行的命名空间。