image
Inicio » PHP » Biblioteca de C�digo PHP » Biblioteca de c�digo

Bases de Datos

Clase de acceso a BD MS SQL Server

Very simple to use this class for return query result and access to fields by its name from MSSQL database. Tested on php v. 3.x and 4.x with MS SQL Server 6.5 and 7.0

Versi�n: 1.0
Fecha: 02/06/2002
Puntaci�n: [3.6/5] Puntuar
  Volver Volver

C�digo

<?
class Recordset {
var $result, // result id
$rowcount, // number of rows in result
$curpos, // index of current row (begin=0, end=rowcount-1)
$fieldcount, // number of fields in result
$fn, // Array of fields names
$rowset, // Array of fields with keys on field name
$connection, // connection id
$sql; // sql query

//Constructor

function Recordset($Sql,$Conn) {
$this->connection=$Conn;
$this->sql=$Sql;
$this->fn=array();
$this->rowset=array();
$this->Query();
}

// Execute query

function Query() {
$this->Close();
$this->result = @mssql_query($this->sql,$this->connection);
if (!$this->result)
return(0);
$this->rowcount = @mssql_num_rows($this->result);
$this->fieldcount = @mssql_num_fields($this->result);
for ($i=1;$i<=$this->fieldcount;$i++) {
$f=@mssql_fetch_field($this->result,$i-1);
// Fill fields names array
$this->fn[$i]=$f->name;
}
$this->curpos=0;
}

//Move to first record

function MoveFirst() {
$this->curpos=0;
}

//Return current row elements and move to next record

function MoveNext() {
if (!$this->result) return(0);
if ($this->curpos==$this->rowcount) return(0);
for($i=1;$i<=$this->fieldcount;$i++)
$this->rowset[$this->fn[$i]] = @mssql_result($this->result,$this->curpos,$this->fn[$i]);
$this->curpos++;
return($this->rowset);
}

//Return true if last record

function Eof() {
if ($this->curpos==$this->rowcount-1)
return(1);
return(0);
}

//Return true if first record

function Bof() {
if (!$this->curpos)
return(1);
return(0);
}

// Free result if exist

function Close() {
if ($this->result && $this->rowcount)
mssql_free_result($this->result);
$this->result=0;
$this->fn=array();
$this->rowset=array();
$this->rowcount=0;
$this->fieldcount=0;
}
}
?>


Ejemplo

<?
$Conn=mssql_connect("server_name","login","password");
mssql_select_db("mydb",$Conn);

$rs=new Recordset("select id,name from mytable",$Conn);
while($Fields=$rs->MoveNext())
print $Fields["id"].",".$Fields["name"];
$rs->Close();

$rs->sql="insert into mytable(id,name) values(1,'test')";
$rs->Query();
$rs->Close();

$rs->sql="select id from mytable";
$rs->Query();
$Fields=$rs->MoveNext();
while(!$rs->Eof()) { //Eof method example
...
$Fields=$rs->MoveNext();
}
$rs->MoveFirst(); //Move to first record
....
$rs->Close();
?>

  Volver Volver







Comparte



Enlaces
Cocina Facil IngenieroSoftware.com  
 
Valid HTML 4.01!
Última modificación:31 de Agosto de 2017. Spain - Espa�a.
© 1998-2004 por . Todos los derechos reservados.