Foros del Web » Programando para Internet » PHP »

Problemas al insertar registro en mysql

Estas en el tema de Problemas al insertar registro en mysql en el foro de PHP en Foros del Web. Hola a [email protected]!! Estoy empezando con php y me está dando problemas algo que aparentemente está bien programado. Por si sirve de información, me instalé ...
  #1 (permalink)  
Antiguo 29/01/2004, 08:04
 
Fecha de Ingreso: enero-2004
Mensajes: 1
Antigüedad: 13 años, 10 meses
Puntos: 0
Problemas al insertar registro en mysql

Hola a [email protected]!!

Estoy empezando con php y me está dando problemas algo que aparentemente está bien programado. Por si sirve de información, me instalé el FoxServ con todo lo necesario para que php funcione en mi ordenador.

Estoy intentando insertar un registro en una tabla (tabla clientes)de una base de datos mysqul, los valores del registro los cojo de un formulario, el código que pongo es este:

<?
//recojo las variables del formulario
$nombre = $_POST["nombre"];
$telefono = $_POST["telefono"];

//Conexión con la base de datos
$conn= mysql_connect ("localhost","usuario","pw");
//sentencia sql
$sql= "insert into clientes (nombre, telefono) values ('$nombre','$telefono')";
$rs= mysql_query ($sql);
mysql_close($conn);
?>

El servidor no me da ningún error, pero cuando consulto la base de datos con MysqlFront no veo el nuevo registro, no se inserta por lo que parece.

Si imprimo las variables con echo se ven, o sea que las recoge,
Si imprimo la variable de la conexión tb se ve, me pone: Resource id #1
Si pruebo la sentencia sql en el mysql front funciona, si la imprimo con echo tb se ve.

Todo parece ir bien pero no se inserta el registro , alquien puede decirme si hay algo mal en el código?

Muchas gracias
  #2 (permalink)  
Antiguo 29/01/2004, 08:10
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
no haz seleccionado una base de datos
<?
//recojo las variables del formulario
$nombre = $_POST["nombre"];
$telefono = $_POST["telefono"];

//Conexión con la base de datos
$conn= mysql_connect ("localhost","usuario","pw");
//seleccionar base de datos
mysql_select_db("nombre bd");
//sentencia sql
$sql= "insert into clientes (nombre, telefono) values ('$nombre','$telefono')";
$rs= mysql_query ($sql);
mysql_close($conn);
?>
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #3 (permalink)  
Antiguo 29/01/2004, 09:34
 
Fecha de Ingreso: enero-2004
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Hola

Me pasa lo mismo que a AprendizZ y tengo seleccionada una base de datos.

Ayuda, please
  #4 (permalink)  
Antiguo 29/01/2004, 09:49
Avatar de lubetpic  
Fecha de Ingreso: enero-2002
Ubicación: San Jose
Mensajes: 679
Antigüedad: 15 años, 10 meses
Puntos: 0
esto puede servirles a ambos y es muy utilizado:

en un archivo llamado config.php pones:

<?php
$username="USER";
$password="PASSWORD";
$basedatos="BASE_DATOS";
$dbhost="LOCALHOST";
$conn=mysql_connect($dbhost,$username,$password);
mysql_select_db($basedatos, $conn);
?>


y en todas las paginas donde interactuas con la base de datos haces un require("config.php");

y en este caso pondrias:

//recojo las variables del formulario
$nombre = $_POST["nombre"];
$telefono = $_POST["telefono"];

//sentencia sql
$sql= "insert into clientes (nombre, telefono) values ('$nombre','$telefono')";
$rs= mysql_query ($sql,$conn );
mysql_free_result($rs);


y asi no tienes que estar llamando a la base de datos a cada rato, lo que te evita muchas complicaciones si piensas que eventualmente tendras que cambiar el password o el username de tu DB
  #5 (permalink)  
Antiguo 29/01/2004, 09:49
Avatar de lubetpic  
Fecha de Ingreso: enero-2002
Ubicación: San Jose
Mensajes: 679
Antigüedad: 15 años, 10 meses
Puntos: 0
esto puede servirles a ambos y es muy utilizado:

en un archivo llamado config.php pones:

<?php
$username="USER";
$password="PASSWORD";
$basedatos="BASE_DATOS";
$dbhost="LOCALHOST";
$conn=mysql_connect($dbhost,$username,$password);
mysql_select_db($basedatos, $conn);
?>


y en todas las paginas donde interactuas con la base de datos haces un require("config.php");

y en este caso pondrias:

//recojo las variables del formulario
$nombre = $_POST["nombre"];
$telefono = $_POST["telefono"];

//sentencia sql
$sql= "insert into clientes (nombre, telefono) values ('$nombre','$telefono')";
$rs= mysql_query ($sql,$conn );
mysql_free_result($rs);


y asi no tienes que estar llamando a la base de datos a cada rato, lo que te evita muchas complicaciones si piensas que eventualmente tendras que cambiar el password o el username de tu DB
  #6 (permalink)  
Antiguo 29/01/2004, 09:49
Avatar de lubetpic  
Fecha de Ingreso: enero-2002
Ubicación: San Jose
Mensajes: 679
Antigüedad: 15 años, 10 meses
Puntos: 0
esto puede servirles a ambos y es muy utilizado:

en un archivo llamado config.php pones:

<?php
$username="USER";
$password="PASSWORD";
$basedatos="BASE_DATOS";
$dbhost="LOCALHOST";
$conn=mysql_connect($dbhost,$username,$password);
mysql_select_db($basedatos, $conn);
?>


y en todas las paginas donde interactuas con la base de datos haces un require("config.php");

y en este caso pondrias:

//recojo las variables del formulario
$nombre = $_POST["nombre"];
$telefono = $_POST["telefono"];

//sentencia sql
$sql= "insert into clientes (nombre, telefono) values ('$nombre','$telefono')";
$rs= mysql_query ($sql,$conn );
mysql_free_result($rs);


y asi no tienes que estar llamando a la base de datos a cada rato, lo que te evita muchas complicaciones si piensas que eventualmente tendras que cambiar el password o el username de tu DB
  #7 (permalink)  
Antiguo 29/01/2004, 09:49
Avatar de lubetpic  
Fecha de Ingreso: enero-2002
Ubicación: San Jose
Mensajes: 679
Antigüedad: 15 años, 10 meses
Puntos: 0
esto puede servirles a ambos y es muy utilizado:

en un archivo llamado config.php pones:

<?php
$username="USER";
$password="PASSWORD";
$basedatos="BASE_DATOS";
$dbhost="LOCALHOST";
$conn=mysql_connect($dbhost,$username,$password);
mysql_select_db($basedatos, $conn);
?>


y en todas las paginas donde interactuas con la base de datos haces un require("config.php");

y en este caso pondrias:

//recojo las variables del formulario
$nombre = $_POST["nombre"];
$telefono = $_POST["telefono"];

//sentencia sql
$sql= "insert into clientes (nombre, telefono) values ('$nombre','$telefono')";
$rs= mysql_query ($sql,$conn );
mysql_free_result($rs);


y asi no tienes que estar llamando a la base de datos a cada rato, lo que te evita muchas complicaciones si piensas que eventualmente tendras que cambiar el password o el username de tu DB
  #8 (permalink)  
Antiguo 29/01/2004, 10:22
 
Fecha de Ingreso: enero-2004
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Gracias lubetpic, pero eso no resuelve el problema:

- En php.ini : register_globals = Off

- En etiqueta form : <form method="post" action="add_reg.php">

- En add_reg.php :

$link = mysql_connect("127.0.0.1","username","password");

mysql_select_db("prueba", $link);

$nombre = $_POST['nombre'];
$telefono = $_POST['apellidos'];

$sql = "INSERT INTO alumnos (nombre, apellidos) ";

$sql .= "VALUES ('$nombre']', '$apellidos')";

$result = mysql_query($sql);


Resultado:

PHP Notice: Undefined index: nombre in . . .
PHP Notice: Undefined index: apellidos in . . .



A ver si alguien sabe que ocurre, gracias

Última edición por Bowman; 29/01/2004 a las 11:51
  #9 (permalink)  
Antiguo 29/01/2004, 14:40
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 14 años, 10 meses
Puntos: 1
Prueba con este haber si te funciona,
Código PHP:
<?php

require('conexion.php');    // conexion a la base de datos.




$nombre $_POST['nombre'];
$telefono $_POST['telefono'];
$submit $_POST['submit']; 
 

    if (isset(
$submit))
    
    { 
        if (!
$nombre  | !$telefono )
        {
die(
'usted no lleno los campos.');
        }
        
        
// no HTML tags para los campos

        
        
$nombre strip_tags($nombre);
        
$telefono strip_tags($telefono);
    


        if (!
get_magic_quotes_gpc())
        {
            
            
$nombre $nombre;
            
$telefono $telefono;
        }

                                                                         
$insert "INSERT INTO alumnos(nombre, telefono) VALUES ('$nombre','$telefono')";

        
$insertando mysql_query($insert);
        if (!(
$insertando)) print "hubo un error en "mysql_error()."por favor corijalo";

        
        
?>
<table width='467' border='0' bgcolor='#ff9900' cellpadding='2' cellspacing='1'>
       <tr>                                                                                                           
        <td bgcolor='#D3DEEA'>
        <b>Insertado con exito! <a href="index.php">continuar</a></b>
</td></tr></table>
<?php

    
}
    else 
    
    {    
// mostramos el formulario

?>
        <font color="#FF0000" face="arial" size="2"><b>agregar </b></font>
        <form  action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >
        Paso 1
        <center>
        <table align="center" width="467" border="0" bgcolor="#cccccc" cellspacing="1" cellpadding="0">
        <tr><td>
        <table align="center" width="467" border="0" bgcolor="#DFEFFF" cellspacing="0" cellpadding="3">
        <tr><td>nombre:</td><td>
        <input type="text" name="nombre" maxlength="100">
        </td></tr>
        <tr><td>telefono:</td><td>
        <input type="text" name="telefono" size="32" maxlength="150">
        </td></tr>
        <tr><td colspan="2" align="right">
        <input type="submit" name="submit" value="Agregar">
        </td></tr>
        </table>
        </td></tr>
        </table>
        </center>
        </form>

    <?php
    
}
     
?>
  #10 (permalink)  
Antiguo 30/01/2004, 08:06
 
Fecha de Ingreso: enero-2004
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
FUNCIONA !!!!!!

Muchas gracias, macabro


Nota

En lugar de:

require('conexion.php'); // conexion a la base de datos.

poner:

$link = mysql_connect("127.0.0.1","username","password");

mysql_select_db("nombre_base_datos", $link);

si no se tiene este código en otro fichero (conexion.php)
  #11 (permalink)  
Antiguo 30/01/2004, 08:52
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Solo un detalle, en
Código PHP:
        if (!$nombre  | !$telefono 
deberia ser
Código PHP:
        if (!$nombre  || !$telefono 
El || es el O logico, mientras que | realiza la operacion or a nivel de bits entre los operadores. En este caso funciona bien porque false se evalua a 0 y true a 1. Pero lo "correcto" seria usar ||.

Saludos.

PD: Tambien seria recomendable meter
Código PHP:
$nombre $_POST['nombre'];
$telefono $_POST['telefono']; 
dentro del
Código PHP:
if ($submit
que por cierto, seria mejor
Código PHP:
if (isset($_POST['submit'])) {
  
$nombre = isset($_POST['nombre'])?$_POST['nombre']:'';
  
$telefono = isset($_POST['telefono'])?$_POST['telefono']:'';

        if (!
$nombre  || !$telefono 
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #12 (permalink)  
Antiguo 30/01/2004, 09:26
 
Fecha de Ingreso: enero-2004
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Gracias por las mejoras josemi

Saludos
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 07:33.