I created a class called "db_oracle.inc":
WHERE DO I HAVE TO HAND THE ERROS IN THIS CLASS WHEN I EXECUTE A QUERY?
The following message appears when a query is executed, so I want to have control in this kind of errros
Warning: OCIStmtExecute: ORA-00921: unexpected end of SQL command in /home/httpd/htdocs/boludiando/html/db_oracle.inc on line 23
Warning: OCIStmtExecute: ORA-00936: missing expression in /home/httpd/htdocs/boludiando/html/db_oracle.inc on line 23
Thanks.
///////////////////////////////////
<?
// Modo de Uso:
// + Establezca una instancia de la clase DB.
// + Ingrese la sentencia SQL en la propiedad homónima.
// + Llame al metodo QUERY para efectuar la consulta.
// + Cargue una matriz con el valor de retorno del metodo FETCH.
// + Libere con el metodo END la memoria utilizada.
// Caracteristicas:
// + El metodo FETCH devuelve una matriz de n dimensiones con el contenido de la tabla accedida.
// + Puede utilizarse la misma instancia para efectuar varias consultas (Siempre y cuando se respete el ciclo SQL-QUERY-FETCH-END).
class db {
var $sql; // Contiene el string de la consulta SQL
var $conn; // Contiene el identificador de la conexión
var $stmt; // Contiene el identificador de sentencia (Int)
function db ($user, $pass, $dbase) {
$this->conn = OCILOGON ($user, $pass, $dbase);
}
// Procesa la consulta SQL
function query () {
$this->stmt = OCIParse (&$this->conn, &$this->sql);
OCIExecute (&$this->stmt);
}
// Cuenta la cantidad de registros
function count () {
return OCIRowCount ($this->stmt);
}
// Obtiene los datos y los devuelve en una matriz n-dimensional
function fetch () {
$cols = OCINumCols ($this->stmt);
if ($cols) {
$inc = 0;
while (OCIFetchInto ($this->stmt, $Vector)) {
reset ($Vector);
for ($i = 0; $i < $cols; $i++) {
$Matriz [$inc][$i] = $Vector [$i];
}
$inc++;
}
}
return ($Matriz);
}
// Libera el identificador
function end () {
OCIFreeStatement (&$this->stmt);
}
}
?>