Как выполнить более одного оператора в команде try - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь установить соединение PDO с помощью блока try, а затем выводить сообщение об успешном завершении после установления соединения.Мой код выглядит следующим образом:

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 голосов
/ 09 июня 2018

Согласно ответу ниже:
Решение здесь для stackoverflow

Я просто добавил обратную косую черту прямо перед PDO и сделал ее равной \PDO, и этосейчас работает нормально.Ссылка ниже может помочь понять PHP Callbacks и как они работают лучше:
Использование пространств имен: откат к глобальной функции / константе

Я должен был помнить о namespace изкоторый я хотел использовать PDO от.В этом случае использование \ сообщит php, что нужно использовать PDO из Global Namespace, а не из пространства имен, из которого выполняется код в (app\db).

...