Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Zhuikov en 19 Marzo 2013, 18:53 pm



Título: ya no se que ocurre
Publicado por: Zhuikov en 19 Marzo 2013, 18:53 pm
No ingresan los datos en MYSQL y he revisado el codigo por todos lados, les dejo el codigo

$conexion = mysql_connect("localhost","root","usbw");
mysql_select_db("hd",$conexion);
$sql = "INSERT INTO admin(pass,usuario) VALUES ('daaass','daaa')";
 mysql_query($sql,$conexion);

ayudaaaaaaaaaaa  :(


Título: Re: ya no se que ocurre
Publicado por: GreenJack en 19 Marzo 2013, 19:26 pm
Antes que nada pedirte por favor que la proxima vez escribas esto de forma un poco más ordenada. Te recomiendo que cuando programes siempre intentes encapsular todo un poco más para ver los errores con más facilidad.

Ahora vamos a lo que nos acata. No soy ningún experto en php pero intentare ayudarte. Parece que te conectas bien pero mezclas un poco los comandos.

$conexion = mysql_connect("localhost","root","usbw");
mysql_select_db("hd",$conexion);
$sql = "INSERT INTO admin(pass,usuario) VALUES ('daaass','daaa')";
mysql_query($sql,$conexion);

-cuando seleccionas una base de datos no tienes que seleccionar la "conexión". Si los datos introducidos son correctos se conectara automaticamente.
-(Asumo que la query es correcta)
-cuando quieres ejecutar una query en la base de datos desde php, solo es necesario indicar la query en sí (lo que tu llamas $sql) y no la $conexión de nuevo.

prueba con el nuevo codigo:
$conexion = mysql_connect("localhost","root","usbw");
mysql_select_db("hd");
$sql = "INSERT INTO admin(pass,usuario) VALUES ('daaass','daaa')";
 mysql_query($sql);


Título: Re: ya no se que ocurre
Publicado por: Zhuikov en 19 Marzo 2013, 19:33 pm
Antes que nada pedirte por favor que la proxima vez escribas esto de forma un poco más ordenada. Te recomiendo que cuando programes siempre intentes encapsular todo un poco más para ver los errores con más facilidad.

Ahora vamos a lo que nos acata. No soy ningún experto en php pero intentare ayudarte. Parece que te conectas bien pero mezclas un poco los comandos.

-cuando seleccionas una base de datos no tienes que seleccionar la "conexión". Si los datos introducidos son correctos se conectara automaticamente.
-(Asumo que la query es correcta)
-cuando quieres ejecutar una query en la base de datos desde php, solo es necesario indicar la query en sí (lo que tu llamas $sql) y no la $conexión de nuevo.

prueba con el nuevo codigo:

no,estoy comenzando a pensar que este tipo de server es malo :/



Título: Re: ya no se que ocurre
Publicado por: GreenJack en 19 Marzo 2013, 19:39 pm
Tu "server" está montado en tu lan por ti o te intentas conectar a uno de internet?


Título: Re: ya no se que ocurre
Publicado por: Zhuikov en 19 Marzo 2013, 19:41 pm
Tu "server" está montado en tu lan por ti o te intentas conectar a uno de internet?

no, es un server de pc (USBWebserver) he estado leyendo que tiene problemas con mysql ¿es cierto?


Título: Re: ya no se que ocurre
Publicado por: GreenJack en 19 Marzo 2013, 19:44 pm
No conozco dicho servidor. Te recomiendo que te montes un ZendServer. Te trae todo juntito para que lo puedas usar (servidor apache, bd, etc.)


Título: Re: ya no se que ocurre
Publicado por: Zhuikov en 19 Marzo 2013, 19:46 pm
No conozco dicho servidor. Te recomiendo que te montes un ZendServer. Te trae todo juntito para que lo puedas usar (servidor apache, bd, etc.)

Descargare el ZendServer, gracias por el dato y cualquier noticia la hare de conocimiento


Título: Re: ya no se que ocurre
Publicado por: #!drvy en 19 Marzo 2013, 19:47 pm
Citar
-cuando seleccionas una base de datos no tienes que seleccionar la "conexión". Si los datos introducidos son correctos se conectara automaticamente.

En realidad es buena practica HACERLO. Imagínate que tienes varias conexiones abiertas. Si no lo indicas, tomara la ultima, lo que igual te puede joder el script entero.

http://php.net/manual/es/function.mysql-select-db.php

Citar
cuando quieres ejecutar una query en la base de datos desde php, solo es necesario indicar la query en sí (lo que tu llamas $sql) y no la $conexión de nuevo.

Pasa igual que lo que he mencionado antes. No es necesario, pero es buena practica hacerlo.


@Zhuikov, podrias ejecutar esto ? Es el mismo codigo que dejas pero con los errores habilitados. Igual tienes algun error en alguna parte fuera del php.

Código
  1. <?php
  2.  
  3. $conexion = mysql_connect("localhost","root","usbw");
  4. if(!$conexion){die('Problema con conx a la base de datos. Verifica host, usuario y contraseña.');}
  5.  
  6. mysql_select_db("hd",$conexion) or die(mysql_error());
  7.  
  8. $sql = "INSERT INTO admin(pass,usuario) VALUES ('daaass','daaa')";
  9. $result = mysql_query($sql,$conexion) or die(mysql_error());
  10.  
  11. if(!$result){die('Un problema muy extraño o.O');} else {die('Se ha ejecutado bien');}
  12.  
  13. ?>

Y, considera usar MYSQLI (http://php.net/manual/es/book.mysqli.php) en vez de mysql. mysql ESTA OBSOLETO y sera eliminada de futuras versiones.

Saludos


Título: Re: ya no se que ocurre
Publicado por: Zhuikov en 19 Marzo 2013, 19:57 pm
En realidad es buena practica HACERLO. Imagínate que tienes varias conexiones abiertas. Si no lo indicas, tomara la ultima, lo que igual te puede joder el script entero.

http://php.net/manual/es/function.mysql-select-db.php

Pasa igual que lo que he mencionado antes. No es necesario, pero es buena practica hacerlo.


@Zhuikov, podrias ejecutar esto ? Es el mismo codigo que dejas pero con los errores habilitados. Igual tienes algun error en alguna parte fuera del php.

Código
  1. <?php
  2.  
  3. $conexion = mysql_connect("localhost","root","usbw");
  4. if(!$conexion){die('Problema con conx a la base de datos. Verifica host, usuario y contraseña.');}
  5.  
  6. mysql_select_db("hd",$conexion) or die(mysql_error());
  7.  
  8. $sql = "INSERT INTO admin(pass,usuario) VALUES ('daaass','daaa')";
  9. $result = mysql_query($sql,$conexion) or die(mysql_error());
  10.  
  11. if(!$result){die('Un problema muy extraño o.O');} else {die('Se ha ejecutado bien');}
  12.  
  13. ?>

Y, considera usar MYSQLI (http://php.net/manual/es/book.mysqli.php) en vez de mysql. mysql ESTA OBSOLETO y sera eliminada de futuras versiones.

Saludos


Unknown table engine 'InnoDB'

me arroja ese mensaje


Título: Re: ya no se que ocurre
Publicado por: #!drvy en 19 Marzo 2013, 20:13 pm
Vale, problema de MySql.

Por casualidad, estas corriendo la ultima versión del USBWebserver ? O has modificado algo ? Es que no es normal que no reconozca InnoDB. Te recomiendo una reinstalacion completa del USBW y si quieres puedes usar otros como EasyPHP, XAMPP, WAMP,o ZendServer.

PD: Podrías intentar borrando los archivos que empiezan por ib_ en la carpeta /mysql/data del USBW y mirar si tienes en el settings/my.ini

Código
  1. innodb_buffer_pool_size = 16M

Saludos


Título: Re: ya no se que ocurre
Publicado por: Zhuikov en 19 Marzo 2013, 21:32 pm
Vale, problema de MySql.

Por casualidad, estas corriendo la ultima versión del USBWebserver ? O has modificado algo ? Es que no es normal que no reconozca InnoDB. Te recomiendo una reinstalacion completa del USBW y si quieres puedes usar otros como EasyPHP, XAMPP, WAMP,o ZendServer.

PD: Podrías intentar borrando los archivos que empiezan por ib_ en la carpeta /mysql/data del USBW y mirar si tienes en el settings/my.ini

Código
  1. innodb_buffer_pool_size = 16M

Saludos


Hasta que lo logre...borrando todos los servidores, limpiando con CCleaner,bajar otro wamp, cambiando puertos...finalmente funcione, ustedes son los mejores!!!

Una ultima pregunta error_reporting(E_ALL) es una especie de Catch-Try?


Título: Re: ya no se que ocurre
Publicado por: #!drvy en 19 Marzo 2013, 21:54 pm
Citar
Una ultima pregunta error_reporting(E_ALL) es una especie de Catch-Try?

No exactamente. Simplemente le dice a PHP que si ocurre algún error que lo muestre y que no se lo guarde para el xD. Es que muchos WAMPs vienen con el display_errors = off y error_reporting(0) por defecto.. entonces si ocurre algún error ni te enteras =)


Saludos