Foros del Web » Programando para Internet » PHP »

Problema con insert y php

Estas en el tema de Problema con insert y php en el foro de PHP en Foros del Web. Buenas, una simple pregunta, que error encuentran acá ? conexion.php Cita: <?php function conectar($conexion) { $conexion = mysql_connect("localhost", "usuario", "clave") or die("ERROR: Problemas en la ...
  #1 (permalink)  
Antiguo 06/01/2011, 17:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Problema con insert y php

Buenas, una simple pregunta, que error encuentran acá ?

conexion.php
Cita:
<?php
function conectar($conexion)
{
$conexion = mysql_connect("localhost", "usuario", "clave") or die("ERROR: Problemas en la conexion");
mysql_select_db("db", $conexion) or die("ERROR: Problemas en la seleccion de base de datos");
}

function desconectar()
{
mysql_close($conexion);
}
?>
main.php
Cita:
include 'conexion.php'; //Conexion a DB
conectar($conexion); //Se conecta a la DB

$query = "INSERT into usuarios_registrados(id,nombre,password,sexo,edad, pais,estado,ocupacion,mail,
redsocial1,redsocial2,redsocial3) values
(0, '$nombre','$clave','$sexo',$edad,'$pais', '', '', '', '', '', '')";

$result = mysql_query($query, $conexion) or die("ERROR: Problemas en la DB. Intente mas tarde.");
conectar y seleccionar evidentemente funciona.
me tirá error en la linea de mysql_query() y dice esto:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/a8929922/public_html/main.php on line 34

verifique en la db y está hecha la tabla, y todas las columnas como corresponden. son todas VARCHAR menos id y edad que son INT. las cuales no puse entre comillas aproposito.
ya me cansé de buscar cual es el error alguien ayudeme :(

y me gustaria saber también como hago para que id sea de AUTO INCREMENT en INT, porque el tipo de dato que estoy poniendo es INT pero quiero que sea de autoincremental y que no sea necesario ingresarlo cuando hago insert.

sry por mi ignorancia :(
gracias
  #2 (permalink)  
Antiguo 06/01/2011, 17:17
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Problema con insert y php

$conexion está quedando dentro del ambito de la función. Deberías hacer un return en la función conectar:
Código PHP:
Ver original
  1. return $conexion;

Otra cosa, no veo que estés haciendo mysql_connect en ningún lado.
  #3 (permalink)  
Antiguo 06/01/2011, 17:17
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con insert y php

El error esta en la funcion que hace la conexion. La variable $conexion solo existe dentro de la funcion, cuando sales de ella ya no existe por eso el error te dice que el recurso de conexion no es valido.

Tienes que, declarar $conexion como global o hacer un return de la variable $conexion en la funcion o simplemente no asignarle mysql_connect a una variable.

Haz esto:
Código PHP:
function conectar() 

$conexion mysql_connect("localhost""usuario""clave") or die("ERROR: Problemas en la conexion"); 
mysql_select_db("db"$conexion) or die("ERROR: Problemas en la seleccion de base de datos"); 
return 
$conexion;

Ahora bien, al principio de tu otro archivo:
Código PHP:
include 'conexion.php'//Conexion a DB
$conexion conectar(); //Se conecta a la DB 
Eso deberia ser todo, en cuanto al campo auto incrementado, eso lo haces desde la base de datos cuando creas la tabla.
  #4 (permalink)  
Antiguo 06/01/2011, 17:18
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Problema con insert y php

También puedes usar variables globales o parámetros por referencia "&$conexion".

Última edición por walterdevel; 06/01/2011 a las 17:19 Razón: PD: perdón por el mysql_connect, no lo vi :P
  #5 (permalink)  
Antiguo 06/01/2011, 17:20
Avatar de Masterphp  
Fecha de Ingreso: septiembre-2009
Ubicación: /home/php/
Mensajes: 94
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Problema con insert y php

o atmbien puedes formular tu codigo de esta manera:
Código PHP:
Ver original
  1. <?php
  2. $uri = "http://".$_SERVER["SERVER_NAME"];
  3. define( 'DB_SERVER', 'localhost' );
  4. define( 'DB_NAME', 'nombre_bd');
  5. define( 'DB_USER', 'root');
  6. define( 'DB_PASS', 'contraseña');
  7.  function conectar () {
  8.    
  9.     $db_con = mysql_pconnect (DB_SERVER,DB_USER,DB_PASS);
  10.     if (!$db_con) return false;
  11.     if (!mysql_select_db (DB_NAME, $db_con)) return false;
  12.     return $db_con;
  13.  
  14. }
  15. $dbConn = conectar();
  16. if ( !empty($_POST['sumar']) ) {
  17.     if ( !empty($_POST['a']) )  $a = $_POST['a'];
  18.     if ( !empty($_POST['b']) )  $b = $_POST['a'];
  19.     if ( empty($a) )    $error['a']         = 'falta numero';
  20. if ( empty($b) )    $error['b']         = 'falta numero 2';
  21. if ( empty($error) ) {
  22.         // inserto los datos de registro en la db
  23. $suma = $a + $b;
  24.         $query  = "INSERT INTO `datos` (a,b,suma) VALUES ('$a','$b','$suma')";
  25.         $result = mysql_query($query, $dbConn);
  26. echo ' <script>
  27. alert("Datos enviados correctamente.");
  28. </script>
  29. <SCRIPT LANGUAGE="javascript">
  30. location.href ="'.$uri.'"
  31. </SCRIPT>
  32. ';
  33. exit();
  34.     }
  35. }
  36. ?>
  #6 (permalink)  
Antiguo 06/01/2011, 17:21
Avatar de bacdavi  
Fecha de Ingreso: junio-2006
Ubicación: http://localhost/
Mensajes: 351
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Problema con insert y php

Probá poniendo tu $query así:

Código PHP:
$query "INSERT into usuarios_registrados(id,nombre,password,sexo,edad, pais,estado,ocupacion,mail,redsocial1,redsocial2,redsocial3) values (0, '".$nombre."','".$clave."','".$sexo."','".$edad."','".$pais."', '', '', '', '', '', '')"
Me dejas saber si te sigue desplegando el error
  #7 (permalink)  
Antiguo 06/01/2011, 17:29
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Problema con insert y php

Cita:
Iniciado por razer Ver Mensaje
Buenas, una simple pregunta, que error encuentran acá ?

conexion.php


main.php


conectar y seleccionar evidentemente funciona.
me tirá error en la linea de mysql_query() y dice esto:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/a8929922/public_html/main.php on line 34

verifique en la db y está hecha la tabla, y todas las columnas como corresponden. son todas VARCHAR menos id y edad que son INT. las cuales no puse entre comillas aproposito.
ya me cansé de buscar cual es el error alguien ayudeme :(

y me gustaria saber también como hago para que id sea de AUTO INCREMENT en INT, porque el tipo de dato que estoy poniendo es INT pero quiero que sea de autoincremental y que no sea necesario ingresarlo cuando hago insert.

sry por mi ignorancia :(
gracias

Para el autoincrement:

Código SQL:
Ver original
  1. ALTER TABLE `asdasda` CHANGE `i` `i` INT( 11 ) NOT NULL AUTO_INCREMENT

donde i es tu campo. Recuerda que tiene que ser una llave primaria para poder hacer esto
  #8 (permalink)  
Antiguo 06/01/2011, 17:47
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Problema con insert y php

Me funcionó todo lo que dijeron. Muchas gracias a todos!!!!!!!!!! :D

Etiquetas: insert
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 03:36.