Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Insertar datos en Sql Server con Php

Estas en el tema de Insertar datos en Sql Server con Php en el foro de PHP en Foros del Web. Buenas a todos, intentando insertar datos en Sql Server me da el siguiente error: Warning: sqlsrv_execute() expects parameter 1 to be resource, string given in ...
  #1 (permalink)  
Antiguo 02/10/2014, 23:55
 
Fecha de Ingreso: mayo-2014
Mensajes: 13
Antigüedad: 9 años, 10 meses
Puntos: 0
Insertar datos en Sql Server con Php

Buenas a todos, intentando insertar datos en Sql Server me da el siguiente error:
Warning: sqlsrv_execute() expects parameter 1 to be resource, string given in C:\xampp\htdocs\SurLab\Index.php on line 31

Tengo esto de código, traer los valores los trae perfectamente, se conecta bien a la base de datos, me muestra el mensaje como que cargó los datos a la base pero no es cierto.

Dejo el codigo:


<?php
$server = "GIANFRANCO\GIANFRANCOPASTI";
$base = array( "Database"=>"SurLabMozos");
$conn = sqlsrv_connect($server,$base);
if($conn){
echo"conectado correctamente";
}
else
{
echo"no se pudo conectar";
}
?>

<?php
If(!empty($_POST)){

$idmozo=$_POST['txtidmozo'];
$mozo=$_POST['txtmozo'];
$insertar= "INSERT into Mozos(IdMozo,Mozo)values($idmozo,'$mozo')";
sqlsrv_execute($insertar);
echo"Agregado correctamente";
}


?>


Espero su ayuda, gracias

Última edición por lucaa31; 03/10/2014 a las 00:03
  #2 (permalink)  
Antiguo 03/10/2014, 00:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Insertar datos en Sql Server con Php

Manual

Cita:
Parámetros

stmt Un recurso de sentencia devuelto por sqlsrv_prepare().
Código PHP:
Ver original
  1. <?php
  2. $server = "GIANFRANCO\GIANFRANCOPASTI";
  3. $base = array( "Database"=>"SurLabMozos");
  4. $conn = sqlsrv_connect($server,$base);
  5. if($conn){
  6. echo"conectado correctamente";
  7. }
  8. else
  9. {
  10. echo"no se pudo conectar";
  11. }
  12. ?>
  13.  
  14. <?php
  15. If(!empty($_POST)){
  16.  
  17. $idmozo=$_POST['txtidmozo'];
  18. $mozo=$_POST['txtmozo'];
  19. $insertar= "INSERT into Mozos(IdMozo,Mozo)values($idmozo,'$mozo')";
  20.  
  21. //Te faltaba esta linea
  22.  
  23. $recurso=sqlsrv_prepare($insertar);
  24.  
  25. //Para mas seguridad usa el valor retornado por sqlsrv_execute
  26.  
  27. if(sqlsrv_execute($recurso)){
  28.       echo"Agregado correctamente";
  29. }else{
  30.       echo"No Agregado";
  31. }
  32. }
  33.  
  34.  
  35. ?>
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 03/10/2014, 01:20
 
Fecha de Ingreso: mayo-2014
Mensajes: 13
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Insertar datos en Sql Server con Php

Edito: Para que funcione tiene que quedar así:
Cita:
<?php
$server = "GIANFRANCO\GIANFRANCOPASTI";
$base = array( "Database"=>"SurLabMozos");
$conn = sqlsrv_connect($server,$base);
if($conn){
echo"conectado correctamente";
}
else
{
echo"no se pudo conectar";
}
?>

<?php
If(!empty($_POST)){
$server = "GIANFRANCO\GIANFRANCOPASTI";
$base = array( "Database"=>"SurLabMozos");
$conn = sqlsrv_connect($server,$base);

$idmozo=$_POST['txtidmozo'];
$mozo=$_POST['txtmozo'];
$insertar= "INSERT into Mozos(IdMozo,Mozo) values ($idmozo,'$mozo')";

$recurso=sqlsrv_prepare($conn,$insertar);

if(sqlsrv_execute($recurso)){
echo"Agregado correctamente";
}
else
{
echo"No Agregado";
}

}
?>
Notar que a lo que me pasaste vos en el sqlsrv_prepare agrego la conexión nuevamente, sino, no funciona.
Saludos y gracias!

Por último: no hay forma de NO tener que volver a declarar la conexión?. gracias!

Última edición por lucaa31; 03/10/2014 a las 01:27
  #4 (permalink)  
Antiguo 03/10/2014, 06:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Insertar datos en Sql Server con Php

http://php.net/manual/es/function.sqlsrv-prepare.php

Cierto no és un parámetro opcional.

No es que la estes declarando otra vez, la tienes en una variable y lo que haces es pasarla como parámetro....

Pero si es un poco inutil podría ser un parámetro opcional y que tomara la última conexión en caso de omitirla.... pero al función esta como esta. De hecho las librerias de mysql lo hacen así.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: server, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:15.