Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: IWKY en 2 Octubre 2007, 00:58 am



Título: phpmyadmin si, php no
Publicado por: IWKY en 2 Octubre 2007, 00:58 am
Buenas miren hago una consulta (en local) para crear una tabla y añadir una fila. Pues si ejecuto la consulta en phpmyadmin funciona correctamente sin ningun problema, pero si la ejecuto desde php no me da ningun error pero no crea la tabla, la consulta la leo desde un fichero, alguien sabe de que puede ser?

Código
  1. $id_mysql = mysql_connect($serverbd, $userbd, $passbd);
  2. mysql_select_db($namebd);
  3. $sql_file = file('sql.txt');
  4. $sql = "";
  5. foreach ($sql_file as $linea)
  6.      $sql .= $linea;
  7.  
  8. $result = mysql_query($sql);
  9. mysql_close($id_mysql);
  10.  


Título: Re: phpmyadmin si, php no
Publicado por: <?BRoWLi?> en 2 Octubre 2007, 01:13 am
la conexion con la db, no es persistente, mejor añade el link de conexion en la query:

Código:
mysql_query($sql, $id_mysql);


Título: Re: phpmyadmin si, php no
Publicado por: IWKY en 2 Octubre 2007, 17:18 pm
He añadido la conexion a la consulta pero no funciona continua ejecutandose (php) sin errores pero phpmayadmin no refleja nada de la consulta y deberia de crear una tabla nueva.


Título: Re: phpmyadmin si, php no
Publicado por: chicuela66 en 2 Octubre 2007, 17:33 pm
has comprobado que te cree bien el fichero? que no te meta caracteres raros ni nada?


Título: Re: phpmyadmin si, php no
Publicado por: IWKY en 2 Octubre 2007, 17:39 pm
El fichero lo creo yo con el bloc de notas, y al leerlo lo imprimo por pantalla para ver que como lo saca y no veo nada raro, anoser las comillas simples que escribo yo pueden que las interprete como acentos o comillas simples, es lo unico que se me ocurre, si fuera eso como lo podria solucionar?


Título: Re: phpmyadmin si, php no
Publicado por: chicuela66 en 2 Octubre 2007, 17:51 pm
y has copiado lo que tesale por pantalla en el phpmyadmin a ver si lo hace?


Título: Re: phpmyadmin si, php no
Publicado por: IWKY en 2 Octubre 2007, 18:49 pm
Lo acabo de probar y la salida que me da el print en la pantalla la pego como consulta sql en phpmyadmin y crea la tabla y añade una fila, encambio desde el php no lo hace.


Título: Re: phpmyadmin si, php no
Publicado por: Alex_bro en 2 Octubre 2007, 21:26 pm
Pero phpmyadmin te da el codigo listo en php no? (debajo del dodigo sql del resultado), tratate con eso?

Saludos.


Título: Re: phpmyadmin si, php no
Publicado por: <?BRoWLi?> en 2 Octubre 2007, 23:11 pm
Solo veo dos posibles errores, uno... las variables de datos para phpmyadmin... las que usas para la conexión y selección de la base de datos.

otro el bucle for asociativo... podrías explicar un poco que pretendes con el... si en el archivo sql.txt ya tienes las sentencias SQL (SELECT, INSERT, ALTER...) hechas. Por lo pronto modifica la linea de la query por esta:

Código:
$result = mysql_query($sql, $id_mysql) or die (mysql_error());

Y escribe el error que te aparece, quizas el php.ini del servidor que usas no imprima los errores.


Título: Re: phpmyadmin si, php no
Publicado por: chicuela66 en 3 Octubre 2007, 10:43 am
Digo yo... y si pones el codigo a ver si vemos algún error??


Título: Re: phpmyadmin si, php no
Publicado por: IWKY en 3 Octubre 2007, 12:19 pm
Código
  1. <?php
  2.  
  3. $serverbd = $_POST['serverbd'];
  4. $userbd = $_POST['userbd'];
  5. $passbd = $_POST['passbd'];
  6. $namebd = $_POST['namebd'];
  7.  
  8. if ($serverbd == '' and $userbd == '' and $passbd == '' and $namebd == ''){
  9. echo '
  10. Muestro un formulario
  11. ';
  12. }
  13. else{
  14. $id_mysql = mysql_connect($serverbd, $userbd, $passbd);
  15. if ($id_mysql == 0){
  16. echo '
  17. Muestro un error ya que la conexion a mysql no se ha realizado
  18. ';
  19. }
  20. mysql_select_db($namebd);
  21. if (mysql_error() != ""){
  22. echo '
  23. Muestro un error diciendo que no existe tal base de datos
  24. ';
  25. }
  26. else{
  27. $sql_file = file('sql.sql');
  28. $sql = "";
  29.                // Con este bucle lo que pretendo es leer el fichero linea a linea
  30.                // y ir añadiendolo a la variable $sql asi es como si tuviera la
  31.                // la consulta en una sola linea
  32. foreach ($sql_file as $linea)
  33. $sql .= $linea;
  34. print $sql;
  35. $result = mysql_query($sql, $id_mysql);
  36. mysql_close($id_mysql);
  37. echo '
  38. Muestro un mensaje diciendo que se ha ejecutado totdo correctamente
  39.                ';
  40. }
  41. }
  42. ?>
  43.  
Despues de ejecutar la consulta el phpmyadmin no me debuelve el codigo php osea que no esta esa opcion, he pegado el codigo aunque donde estan los echo va codigo html yo os lo resumo mostrando esos mensajes, errores si que me muestra el server porque hay veces que me he equivocado al teclear y la conexion me ha dado error y ha salido en la pantalla.


Título: Re: phpmyadmin si, php no
Publicado por: chicuela66 en 5 Octubre 2007, 09:50 am
yo de ti no pasaria los datos de conexión por post, create un fichero y pillalas de ahi es más seguro. Y luego creo que te falla el foreach

$sql_file = file('sql.sql');      
$sql = "";               
foreach ($sql_file as $linea_num => $linea)   $sql .= $linea;   print $sql;

Prueba eso a ver que tal.


Título: Re: phpmyadmin si, php no
Publicado por: IWKY en 5 Octubre 2007, 15:06 pm
Si ya se lo del pasarlas por post lo que pasa que el archivo que tengo es un supuesto install.php que crea un fichero con toda la info sobre la bbdd.

He probado el foreach que me has escrito y sige sin funcionar, yo me estoy volviendo loco porque no veo donde esta el fallo, y seguro que sera una julipolez.

Otra cosa el archivo que tengo con todos los datos de la bbdd hay algun metodo para encriptarlo o protegirlo contra posibles curiosos?