PDA

Ver la Versión Completa : error insertando


pharaonhx
22-03-2005, 16:00:06
tengo el siguiente ejemplo para insertar datos en una base de datos en mysql

<HTML>
<HEAD>
<TITLE>Pagina para insertar en la base de datos</TITLE>
</HEAD>
<BODY>
<?php

$NombreBD = 'Baseprueba';
$Servidor = 'localhost:C:\Program Files\MySQL\MySQL Server 4.1\data\baseprueba';
$Usuario = 'root';
$Clave ='reelena';

//conexion con la base de datos
$IdConexion = mysql_connect($Servidor, $Usuario, $Clave);

//selecionando la base de datos
mysql_select_db($NombreBD, $IdConexion);

mysql_error($IdConexion);
mysql_errno($IdConexion);

//insertando registro en la base de datos
$Nombre=$_GET['Nombre'];
$Apellido=$_GET['Apellido'];
$Telefono=$_GET['Telefono'];
$Query = 'INSERT INTO CLIENTES (IDCliente,NOMBRE, APELLIDO, TELEFONO) VALUES ('$IDCliente','$Nombre','$Apelldio','$Telefono');';

$Insecion = mysql_query($Query, $Idconexion);


?>

<H1><DIV ALIGN="CENTER">Registro Insertado </DIV></h1>
<H1><DIV ALIGN="CENTER"><A HREF="consulta.php">Visualiza los registros de la base de datos </DIV></h1>

</BODY>
</HTML>


realmente no se que estoy haciendo mal me dan una mano soy nuevo en esto solo tengo dos dias leyendo de php ok ... no inserta por si a tengo otra pagina donde esta el formulario ok..

kayetano
22-03-2005, 20:06:45
Hola

Antes de nada hacerte saber la existencias de las marcas para codigo PHP, cuando escribas código PHP debes meterlo entre las marcas [PHP][ /PHP] (sin los espacios).

Falta mucha información como para poder darte una respuesta 100% pero prueba con esto
1. $Servidor = "localhost";
2. ¿de donde sale "$IDCliente";
3. PHP diferencia entre mayusculas y minisculas.
4. Asegurate que el formulario se envia en modo "GET", aunque yo te aconsejo utilizar el modo "POST"

roman
23-03-2005, 05:21:42
Complementando un poco lo que indica kayetano, el problema lo tienes desde la conexión. En MySql sólo se pueden guardar las tablas en un lugar por lo que no se especifica la ruta completa al directorio sino únicamente la dirección del servidor (en tu caso localhost).

Dado que lo que haces es una inserción es común pensar que el problema esté ahí pues con las versiones más recientes de PHP no se visualizará ningún mensaje de error anterior. Por eso es recomendable que siempre verifiques que las funciones tuvieron éxito:


$IdConexion = mysql_connect($Servidor, $Usuario, $Clave);

if (!$IdConexion)
{
echo 'Hubo un error en la conexión';
}


y lo mismo con cada llamada a una función de mysql. Incluso, al menos durante las pruebas puedes usar mysql_error() para presentar el mensaje de error que manda el mismo MySql.

Otra cosa, a no ser que trabajes con consultas simultáneas al mismo o distintos servidores, no es necesario pasar el $IdConexion en cada función.

// Saludos

Emilio
26-03-2005, 12:34:30
Me temo que se trata de un problema de mayúsculas minúsculas, veo un $Idconexion que no me gusta nada.

$Insecion = mysql_query($Query, $Idconexion);

Mejor así --> $Insecion = mysql_query($Query, $IdConexion);

Y mucho mejor todo en minúsculas asi no te lias ;)

salvica
17-04-2005, 20:54:49
Hola, yo tengo algo parecido tal que así:

<?php
//+-----------------------------------------------------------------------------
//| Leer los parámetros de entrada
//| (en las nuevas versiones de PHP utilizar $_POST)
//+-----------------------------------------------------------------------------
$Nombre = $HTTP_POST_VARS["Nombre"];
$Apellido = $HTTP_POST_VARS["Apellido"];
$Telefono = $HTTP_POST_VARS["Telefono"];

//+-----------------------------------------------------------------------------
//| Declarar los parámetros de la conexión
//+-----------------------------------------------------------------------------
$hostName = "localhost";
$hostUser = "root";
$hostPass = "reelena";
$dataBase = "Baseprueba";

//+-----------------------------------------------------------------------------
//| Conectarse al servidor
//+-----------------------------------------------------------------------------
$conexion = @mysql_connect( "$hostName", "$hostUser", "$hostPass" ) or
die( "<h2 align='center'>Conexión no realizada</h2>" );
mysql_select_db( $dataBase, $conexion );

//+-----------------------------------------------------------------------------
//| Comprobar que el usuario NO existe
//+-----------------------------------------------------------------------------
$sqlAccess = mysql_query( "SELECT * FROM CLIENTES WHERE IDCliente='$IDCliente'", $conexion );
if( $row = mysql_fetch_array($sqlAccess) ) {
$existe = true;
} else {
/*
+--------------------------------------------------------------------------
| USUARIO nuevo. Darle de alta
+--------------------------------------------------------------------------
*/
$sqlQuery = "INSERT INTO CLIENTES ( IDCliente, NOMBRE, APELLIDO, TELEFONO )";
$sqlQuery .= " VALUES ( '$IDCliente', '$Nombre', '$Apellido', '$Telefono' )";
$sqlResult = mysql_query( $sqlQuery ) or
die( "<h2 align='center'>No se ha podido dar de alta a $IDCliente </h2>" );
}
mysql_close( $conexion );
?>

Saludos y que te sirva de algo
Salvica