Necesito su ayuda, resulta que estoy tratando de pasar como parámetro a un método estático un objeto PDOException (bueno eso creo que es, no estoy seguro) pero me arroja el error de que no se puede acceder al método x de un no objeto, aquí el fragmento de mi código:
Código PHP:
try{
return $this->servidorBD->query("SELECT ".$campos." FROM ".$this->tabla.$condicion)->fetch(PDO::FETCH_OBJ);
}catch(PDOException $err){
util::imprimeErr($err);
}
pero obtengo el error
Call to a member function getLine() on a non-object
lo curioso es que tengo el siguiente codigo en dicho metodo, antes de hacer la llamada a getLine y cualquier otra de las que mencione anteriormente, para hacer la traza y no hay error ahi, osea si accede al menos a getTrace(), aqui el codigo
Código PHP:
$traza = '<table border="0">';
foreach ($e->getTrace() as $a => $b) {
foreach ($b as $c => $d) {
if ($c == 'args') {
foreach ($d as $e => $f) {
$traza .= '<tr><td><b>'.strval($a).'#</b></td><td align="right"><u>args:</u></td> <td><u>'.$e.'</u>:</td><td><i>'.$f.'</i></td></tr>';
}
} else {
$traza .= '<tr><td><b>'.strval($a).'#</b></td><td align="right"><u>'.$c.'</u>:</td><td></td><td><i>'.$d.'</i></td>';
}
}
}
$traza .= '</table>';
aqui el codigo donde ocurren los errores
Código PHP:
die('<br /><br /><font face="Verdana"><center>'.
'<fieldset style="width: 66%; border: 4px solid black;">'.
'<legend><b>[</b>PHP PDO Error '.strval($cod).
'<b>]</b></legend> <table border="0"><tr><td align="right"><b><u>Mensaje:</u></b></td><td><i>'.
$men . '</i></td></tr><tr><td align="right"><b><u>Codigo:</u></b></td><td><i>'.
strval($cod) . '</i></td></tr><tr><td align="right"><b><u>Archivo:</u></b></td><td><i>'.
$file . '</i></td></tr><tr><td align="right"><b><u>Linea:</u></b></td><td><i>'.
strval($e->getLine()).'</i></td></tr><tr><td align="right"><b><u>Traza:</u></b></td><td><br /><br />'.
$traza . '</td></tr></table></fieldset></center></font>');
Código PHP:
util::imprimeErr($er, $this->config->sacar('Produccion'), $er->getCode(), $er->getMessage(), $er->getFile(), $er->getLine());
alguna idea?
Gracias de antemano amigos.
Saludos.