
PDOException: SQLSTATE[08001] PHP
Publicado por Mauricio (3 intervenciones) el 16/12/2022 08:31:40
Que tal amigos acabo de cambiar mi sql server de 2012 a sql server 2019 y tengo un problema con las consultas que realizo ya agregue las exepciones en el php.ini de slqserv
pero me arroja el siguiente error; Cabe mencionar que tengo la version de PHP 7.0.18
No se ha podido realizar la conexión con la base de datos PDOException: SQLSTATE[08001]: [Microsoft][ODBC Driver 13 for SQL Server]SSL Provider: Se ha forzado la interrupción de una conexión existente por el host remoto. in C:\xammp\Apache\htdocs\mega\app\class\class.DataBaseSQLServer.php:30
linea 30
class DataBaseSQLServer
{
private $bd_servidor;
private $bd_usuario;
private $bd_password;
private $bd_nombre;
protected $bd_conexion;
protected $tipo_conexion;
function __construct() {
$tipo_conexion = 'remoto';
$conexion['remoto'] = array ('bd_host' => '192.168.1.228\AWSERV', 'bd_nombre'=>'MEGADATA','bd_usuario'=>'root', 'bd_password'=>'root' );
$this->bd_servidor = $conexion[$tipo_conexion]['bd_host'];
$this->bd_nombre = $conexion[$tipo_conexion]['bd_nombre'];
$this->bd_usuario = $conexion[$tipo_conexion]['bd_usuario'];
$this->bd_password = $conexion[$tipo_conexion]['bd_password'];
}
public function conectarBD(){
try {
$this->bd_conexion = new PDO("sqlsrv:Server=$this->bd_servidor; Database=$this->bd_nombre; ConnectionPooling=0;", $this->bd_usuario, $this->bd_password); // ESTA ES LA LINEA 30
$this->bd_conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $this->bd_conexion;
} catch (PDOException $exc) {
echo 'No se ha podido realizar la conexión con la base de datos '.$exc;
}
}
public function desconectarBD(){
$this->bd_conexion = '';
unset($this->bd_conexion);
}
public function getBD_Conexion(){
return $this->bd_conexion;
}
protected function ejecutarConsulta($consulta_sql, $array_datos, $con_parametros, $tipo_consulta)
{
$query = $this->conectarBD()->prepare($consulta_sql); //Prepara la consulta
if($con_parametros == 'n' || $con_parametros == 'N'){
$query->execute(); //Ejecuta la consulta
}
else{
$query->execute($array_datos);
}
if($tipo_consulta == 'n') {
$resultado = $query->fetchAll();
$this->desconectarBD();
}
elseif($tipo_consulta =='a'){
$resultado = $query->fetch(PDO::FETCH_ASSOC);
$this->desconectarBD();
}
elseif($tipo_consulta =='at'){
// se agrego el try
try {
$resultado = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $err) {
echo 'No se ha podido realizar la asociación ';
}
$this->desconectarBD();
}
return $resultado;
}
}
pero me arroja el siguiente error; Cabe mencionar que tengo la version de PHP 7.0.18
No se ha podido realizar la conexión con la base de datos PDOException: SQLSTATE[08001]: [Microsoft][ODBC Driver 13 for SQL Server]SSL Provider: Se ha forzado la interrupción de una conexión existente por el host remoto. in C:\xammp\Apache\htdocs\mega\app\class\class.DataBaseSQLServer.php:30
linea 30
class DataBaseSQLServer
{
private $bd_servidor;
private $bd_usuario;
private $bd_password;
private $bd_nombre;
protected $bd_conexion;
protected $tipo_conexion;
function __construct() {
$tipo_conexion = 'remoto';
$conexion['remoto'] = array ('bd_host' => '192.168.1.228\AWSERV', 'bd_nombre'=>'MEGADATA','bd_usuario'=>'root', 'bd_password'=>'root' );
$this->bd_servidor = $conexion[$tipo_conexion]['bd_host'];
$this->bd_nombre = $conexion[$tipo_conexion]['bd_nombre'];
$this->bd_usuario = $conexion[$tipo_conexion]['bd_usuario'];
$this->bd_password = $conexion[$tipo_conexion]['bd_password'];
}
public function conectarBD(){
try {
$this->bd_conexion = new PDO("sqlsrv:Server=$this->bd_servidor; Database=$this->bd_nombre; ConnectionPooling=0;", $this->bd_usuario, $this->bd_password); // ESTA ES LA LINEA 30
$this->bd_conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $this->bd_conexion;
} catch (PDOException $exc) {
echo 'No se ha podido realizar la conexión con la base de datos '.$exc;
}
}
public function desconectarBD(){
$this->bd_conexion = '';
unset($this->bd_conexion);
}
public function getBD_Conexion(){
return $this->bd_conexion;
}
protected function ejecutarConsulta($consulta_sql, $array_datos, $con_parametros, $tipo_consulta)
{
$query = $this->conectarBD()->prepare($consulta_sql); //Prepara la consulta
if($con_parametros == 'n' || $con_parametros == 'N'){
$query->execute(); //Ejecuta la consulta
}
else{
$query->execute($array_datos);
}
if($tipo_consulta == 'n') {
$resultado = $query->fetchAll();
$this->desconectarBD();
}
elseif($tipo_consulta =='a'){
$resultado = $query->fetch(PDO::FETCH_ASSOC);
$this->desconectarBD();
}
elseif($tipo_consulta =='at'){
// se agrego el try
try {
$resultado = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $err) {
echo 'No se ha podido realizar la asociación ';
}
$this->desconectarBD();
}
return $resultado;
}
}
Valora esta pregunta


0