Соединение PDO с SQLServer - PullRequest
       1

Соединение PDO с SQLServer

0 голосов
/ 02 декабря 2018

Я пытаюсь установить новое PDO соединение с PHP MVC и SQL Server, но когда я пытаюсь обратиться за консультацией к моей БД, это выдает мне ошибку

Fatal error</b>:  Uncaught Error: Call to a member function prepare() on null

I 'я пытаюсь установить соединение как это

<?php

class Conexion{

  static public function conectar(){

    $DATABASE="Database";
    $DB_USER="DBUser";
    $DB_PASSWORD="DBPassword";
    $SERVER_NAME = "ServerName";
    try
    {
      $db = new PDO("sqlsrv:Server=$SERVER_NAME;Database=$DATABASE", "$DB_USER", "$DB_PASSWORD");
      $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

    }catch(PDOException $e){
      echo 'ERROR TO CONNECT' . $e->getMessage();
      die();
    }

  }

}

и в другом контроллере я делаю запрос как это

    <?php

require_once "conexion.php";

class UserModel{

    static public function mdlSearchUser($table, $data){
      $stmt = Conexion::conectar() -> prepare("SELECT CB_CODIGO FROM $table WHERE CB_ACTIVO='S' AND CB_Codigo = $data");
      $stmt->execute();
      return $stmt -> fetchAll();
      $stmt ->close();
      $stmt = null;
    }
}

1 Ответ

0 голосов
/ 03 декабря 2018

Вам необходимо вернуть экземпляр PDO, который представляет соединение с запрошенной базой данных.Вы можете попробовать изменить conexion.php и вернуть экземпляр PDO с return $db; в случае успеха или return false; при ошибке:

<?php
class Conexion {

    static public function conectar() {
        $DATABASE    = "tornado_tmp";
        $DB_USER     = "tornado";
        $DB_PASSWORD = "1234";
        $SERVER_NAME = "127.0.0.1\ikosoft,1066";
        try {
            $db = new PDO("sqlsrv:Server=$SERVER_NAME;Database=$DATABASE", "$DB_USER", "$DB_PASSWORD");
            $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
            return $db;
        } catch(PDOException $e) {
            echo 'ERROR TO CONNECT' . $e->getMessage();
            return false;
        }
    }
}
?>

И использовать свой класс Conexion следующим образом:

<?php
require_once "conexion.php";

class UserModel{

    static public function mdlSearchUser($table, $data){
        $stmt = Conexion::conectar() -> prepare("SELECT CB_CODIGO FROM $table WHERE CB_ACTIVO='S' AND CB_Codigo = $data");
        $stmt->execute();
        return $stmt -> fetchAll();
        $stmt ->close();
        $stmt = null;
    }
}

$obj = new UserModel();
$obj->mdlSearchUser('table', 'data')
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...