将PDO与SQLServer连接



我正试图与PHP MVCSQL Server建立新的PDO连接,但当我试图向我的DB进行咨询时,这会向我发送错误

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

我正试着把这个连接起来

<?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;
}
}

您需要返回一个PDO实例,该实例表示与请求的数据库的连接。您可以尝试更改conexion.php,并在成功时返回带有return $db;的PDO实例,在错误时返回return false;

<?php
class Conexion {
static public function conectar() {
$DATABASE    = "tornado_tmp";
$DB_USER     = "tornado";
$DB_PASSWORD = "1234";
$SERVER_NAME = "127.0.0.1ikosoft,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')
?>

最新更新