Foros del Web » Programando para Internet » PHP »

Formulario que llena BBDD

Estas en el tema de Formulario que llena BBDD en el foro de PHP en Foros del Web. Tengo un problema y no se dónde está... me han dicho en el foro de MySQL que pregunte aquí... Es simplemente un formulario que rellena ...
  #1 (permalink)  
Antiguo 30/06/2009, 02:28
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 1
Formulario que llena BBDD

Tengo un problema y no se dónde está... me han dicho en el foro de MySQL que pregunte aquí...

Es simplemente un formulario que rellena una base de datos de mysql.
Os enseño una versión simplificada con solo 2 campos porque intuyo que me falta algo:

insertar.php:
Código PHP:
<?php
require_once("conexion.inc.php");
$conexion = new mysqli($servidor$usuario$passwd$basedatos);
if (
mysqli_connect_errno())
{
    echo 
"Error";
    exit();
}
$nombre htmlspecialchars($_POST["nombre"]);
$apellido htmlspecialchars($_POST["apellido"]);

$sql ="INSERT INTO accesos (nombre, apellido)";
$sql .="VALUES ('$nombre', '$apellido')";
?>

Y este es mi formulario simplificado:

Código HTML:
<form action="insertar.php" method="post" name="form1" id="form1">
  <p>
    <label>
      <input type="text" name="nombre" id="nombre">
    </label>
  </p>
  <p>
    <label>
      <input type="text" name="apellido" id="apellido">
    </label>
  </p>
  <p>
    <label>
      <input type="submit" name="enviar" id="enviar" value="Enviar">
    </label>
  </p>
</form> 

Creo que el formulario ENVÍA bien los datos, porque he probado a imprimirlos en pantalla cuando llegan a insertar.php, pero entonces?

Qué es lo que impide que se escriban en mi base de datos?
  #2 (permalink)  
Antiguo 30/06/2009, 02:54
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

Hola, creo que lo unico que te falta es proceder a ejecutar la instruccion sql,

mysql_query

despues de la instruccion

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


espero haberte ayudado, si no es asi dimelo y lo volvere a mirar.

un saludo
  #3 (permalink)  
Antiguo 30/06/2009, 03:10
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

He añadido la línea


Código PHP:
mysql_query($sql); 
Y me da los siguientes errores:


Warning: mysql_query() [function.mysql-query]: Access denied for user 'UNKNOWN_USER'@'localhost' (using password: NO) in /var/www/vhost/midominio.com/home/html/insertar.php on line 15

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /var/www/vhost/midominio.com/home/html/insertar.php on line 15


Puede ser que mi usuario no tenga permiso de escritura?
  #4 (permalink)  
Antiguo 30/06/2009, 03:20
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

Hola de nuevo, perdona, creia que sabias como funcionada la instruccion, debes hacer lo siuiente.

mysql_query($basedatos,$sql);

espero que ahora te funcione

un saludo
  #5 (permalink)  
Antiguo 30/06/2009, 03:44
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

Me dice el siguiente error:



Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /var/www/vhost/midominio.com/home/html/insertar.php on line 15



Código PHP:
<?php
require_once("conexion.inc.php");
$conexion = new mysqli($servidor$usuario$passwd$basedatos);
if (
mysqli_connect_errno())
{
    echo 
"Error";
    exit();
}
$nombre htmlspecialchars($_POST["nombre"]);
$apellido htmlspecialchars($_POST["apellido"]);

$sql ="INSERT INTO accesos (nombre, apellido)";
$sql .="VALUES ('$nombre', '$apellido')";

mysql_query($basedatos$sql);
?>
  #6 (permalink)  
Antiguo 30/06/2009, 04:05
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

hola, vamos a probar lo siguiente.

$result = mysql_db_query($basedatos,$sql);

espero que te funciones.un saludo
  #7 (permalink)  
Antiguo 30/06/2009, 04:13
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

Nada, sigue dándome un error:

Código PHP:
<?php
require_once("conexion.inc.php");
$conexion = new mysqli($servidor$usuario$passwd$basedatos);
if (
mysqli_connect_errno())
{
    echo 
"Error";
    exit();
}
$nombre htmlspecialchars($_POST["nombre"]);
$apellido htmlspecialchars($_POST["apellido"]);

$sql ="INSERT INTO accesos (nombre, apellido)";
$sql .="VALUES ('$nombre', '$apellido')";

$result mysql_db_query($basedatos,$sql);

?>

Warning: mysql_db_query() [function.mysql-db-query]: Access denied for user 'UNKNOWN_USER'@'localhost' (using password: NO) in /var/www/vhost/midominio.com/home/html/insertar.php on line 15

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in /var/www/vhost/midominio.com/home/html/insertar.php on line 15
  #8 (permalink)  
Antiguo 30/06/2009, 04:22
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

El problema debe estar en la conexion,

$conexion = new mysqli($servidor, $usuario, $passwd, $basedatos);

El usuario debe estar autorizado para gestionar la base de datos, es asi ?

la contraseña debe coincidir (mayusculas o minusculas) con la de usuario, es asi ?

El $servidor = localhost ?

Supongo que trabajs con Mysql y PHPMyadmin, si es asi, has de tener un usuario dado de alta para poder gestionar la base de datos, supongo que lo tienes de esta forma ?.

seguimos....

un saludo
  #9 (permalink)  
Antiguo 30/06/2009, 04:34
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

Trabajo con phpmyadmin, utilizo el usuario que me dió mi hosting porque no se cómo crear uno nuevo y tampoco veo la opción de gestionar los privilegios del actual.

Mi servidor no es localhost,

$servidor="mysql.midominio.com";


Es raro porque la conexión me ha funcionado a la hora de MOSTRAR los datos actuales de la BBDD. Y también puedo meter datos directamente desde phpmyadmin...
  #10 (permalink)  
Antiguo 30/06/2009, 04:53
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

Vamos a hacer una prueba sencilla

mysql_connect("tuhost","tuuser","tupassword");

$sql ="INSERT INTO accesos (nombre, apellido) VALUES ('$nombre', '$apellido')";

$result = mysql_db_query("tubasededatos",$sql);

pon tus valores y haz la prueba,

seguimos...

un saludo
  #11 (permalink)  
Antiguo 30/06/2009, 05:01
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

No me da ningún error pero tampoco se me agrega nada a la base de datos... :(
  #12 (permalink)  
Antiguo 30/06/2009, 05:11
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

ok,

vamos a visualizar la instruccion $sql con un echo y veamos si los valores son correctos.

echo "sql ".$sql;

importante que nombre y apellidos tengan valor

seguimos...
  #13 (permalink)  
Antiguo 30/06/2009, 05:20
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

Código PHP:
<?php 
mysql_connect
("mysql.midominio.com","qep153","password");

$sql ="INSERT INTO accesos (nombre, apellido) VALUES ('hola', 'adios')";

$result mysql_db_query("qep153",$sql);

echo 
"sql ".$sql;

?>
Y obtengo:

sql INSERT INTO accesos (nombre, apellido) VALUES ('hola', 'adios')
  #14 (permalink)  
Antiguo 30/06/2009, 05:33
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

Hola, supongo que el password no es password, pero tu debes poner el correcto.

Creo que el problema debe estar en el usuario, si entras en phpMyadmin, cuando clicas en servidor (parte superior), te aparecen una serie de opciones, elige "privilegios" y agrega un nuevo usuario.

Al usuario que crees dale todos los privilegios (marcar todos)

Una vez hecho esto debes revisar los privilegios para tu base de datos y asignarle el usuario que hayas dado de alta.

no es dificil

seguimos...

un saludo
  #15 (permalink)  
Antiguo 30/06/2009, 05:38
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

Esque no veo lo de "privilegios" por ninguna parte:

  #16 (permalink)  
Antiguo 30/06/2009, 05:52
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

YA HE DADO CON EL ERROR!!!!!

Bueno, no exáctamente pero ya está solucionado.

Todo estaba bien, pero he borrado la tabla y la he vuelto a crear con los mismos nombres y ya ha funcionado todo bien.

Ahora que recuerdo, la tabla la cree con otros nombres y luego los cambié... es posible que al cambiarlos solo sea efectivo en la visualización en phpmyadmin pero a la hora de referirte a los campos en la instrucción, no hace caso a los nuevos nombres...


Aunque sigo sin saber por qué mi phpmyadmin no me permite modificar los privilegios... puede ser cosa del hosting ???

Muchas gracias por tu dedicación de todos modos, zeravlamv ;D
  #17 (permalink)  
Antiguo 30/06/2009, 05:53
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

Bueno, al parecer tienes un problemilla con los "privilegios", pregunta:

accedes a PHPMyadmin con el usuario "root" o con otro distinto ?

si no accedes como root, no tendras acceso a ciertas opciones, y deberias recurrir al administrador para que te autorice.

seguimos...

un saludo
  #18 (permalink)  
Antiguo 30/06/2009, 05:59
Avatar de angeldelolmo  
Fecha de Ingreso: junio-2008
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

No, no accedo como root, cuál sería la contraseña de root?
  #19 (permalink)  
Antiguo 30/06/2009, 06:04
 
Fecha de Ingreso: junio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Formulario que llena BBDD

La contraseña puede ser cualquiera, deberias contactar con el administrador.

Por probar puedes probar sin contraseña , si entras, antes de continuar deberias asignarle una contraseña al root.

lo mejor seria que el administrador te otorgora privlegios para poder trabajar con PHPMyadmin y tus bases de datos.

ya me diras...

un saludo
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 11:56.