conectar php con sql server

PIN
Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+

Ya hace tiempo tuve un cliente que quería que su web corriera en php de lenguaje del lado del servidor y con SQL SERVER  para el motor de base de datos   entonces  ahi mucha información sobre este tipo de conexión pero la verdad que nos mandan por el desbio.

SQL SERVER es un motor de base de datos robustas y deben tener en cuenta que ahi en pequeñas cosas que cambia cuando hacen las consulta por ejemplo en mysql existe el LIMIT pero en SQL SERVER tenemos el TOP esto solo lo digo como referencia para que lo tengan en cuenta.

los script que mostrare sera de una forma de programacion estructural ya luego pueden armarlo con clases MVC
conexion

 $server="LUISRODRIGUEZ-PC"; $database="NOMBREBASEDEDATOS"; $user="USER"; $password="PASS"; $cn=odbc_connect("Driver={SQL Server};Server=$server;Database=$database;", $user, $password); 

la parte de arriba tenemos la conexion a la base de datos
para ponerlos practicos hagamos que vamos hacer un login.

 
//tomamos los post del fromulario que seria para el login 
$correo= addslashes(trim($_POST["correo"])); 
$pw=addslashes(trim($_POST["pw"])); 
//la consulta para verificar si existe el usuario 
//ejecutamos la consulta 
$SQL=odbc_exec($cn,"select * from usuarios where correo='".$correo."' and password='".md5($pw)."'"); 
//lo ejecutamos y lo pedidos que nos retorne los datos en array 
$row= odbc_fetch_array($SQL); 
//conteo de registro si ahi mas de 1 va a pasar 
if (odbc_num_rows($SQL))
{ 
$data[estado]="ok"; 
$_SESSION["id"]=$row["id"]; 
$_SESSION["username"]=$row["username"]; 
}
else 
{
$data[estado]="error"; 
} 
//lo devolvemos en json 
echo json_encode($data); 

entonces esto no es nada dificil pero para que hagamos equivalencias con las consultas tipicas cuando trabajamos con mysql.

MYSQL SQL SERVER
mysql_query odbc_exec puede hacer consultas, insert , delete, update
mysql_fetch_array odbc_fetch_array  solo en el caso de hacer consultas con esto pueden obtener la data y claro que tambien es para hace bucle
mysql_num_rows odbc_num_rows  conteo de registros y para complementar abajo deje una funcion por un bug que tiene

ahora aqui debemos tener en cuenta que cuando pedimos el numero de resultados por alguna razon nunca manda el numero correcto creo que siempre manda con un registro menos pero entonces por que en mi consulta funciono? es que nunca hice comparacion con numeros por que si fuera asi estariamos en ese problema pero siempre va a ver la necesidad de saber cuantos registros reales ahi para eso aqui les dejo una clase que les ayudara con eso.



function odbc_record_count($sql_id, $CurrRow = 1)
{
    if ($NumRecords=odbc_num_rows($sql_id)<0) {
     $NumRecords = 0;
     odbc_fetch_row($sql_id,0);
     while (odbc_fetch_row($sql_id))
     {
       $NumRecords++;
     }
     odbc_fetch_row($sql_id, $CurrRow);
    }
     return $NumRecords;
}

Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+

Hi, I'm luis rodriguez

Hola, Soy Luis Rodriguez, radico en Lima – Perú, formado en una carrera informática, desempeñando desde el 2007 como programador web y viendo proyectos desde Front End y Back End a lo que me perfile como Full Stack. Esta Experiencia junto a mi interés en la Analítica Web me ayudó mucho entender el funcionamiento interno de las herramientas de analítica, con las que vengo trabajo activamente desde 2017. Linkedin

http://luisrodriguez.pe

Leave Your Comments