Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/01/2003, 20:22
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Antetodo .. felicitarte por la forma de hacer la pregunta .. clara . concisa y con todos los códigos y datos q usas publicados en una web para q sean visibles en su contexto.

Sobre el problema que tienes .. Es que Mysql NO ejecuta varias consultas en un mismo mysql_query().

Una consulta la define cada: instrucciones SQL ;

Por lo tanto hay q identificar cada ; para repartir varias consultas como las q tienes en tu db.sql en varios mysql_query() ...

Como sabemos que caracter es el "delimitador" se pude facilmente aplicar un simple explode() y obtener un array con el que poder trabajar para enviar las consultas mysql_query() una por una.

Aquí .. gracias a tus ejemplos hice una versión que "casi funciona por completo" ... Por lo mismo que comento sobre el ";" (punto y coma) como delimitador .. en tus datos hay un ; q no se ha de indentificar como delimitador de consulta SQL .. Eso ya te lo dejo a ti xD una vez detectado el problema.

Código PHP:
<?php
$pre 
"test";
$user="test";
$pass="test";
$mail="test";
$archivo "db.sql";
$fd fopen($archivo,"r");
$sql fread ($fdfilesize ($archivo));
fclose($fd);

$sql=str_replace("newspostsys_smiles",$pre."log",$sql);

mysql_connect("localhost","","") or  die (mysql_error()) ;
mysql_select_db("prueba") or  die (mysql_error()) ;

$consultas explode';'$sql); // el ; define el fin de una instruccion SQL ..

// Obtenido el array de Instrucciones SQL q hay q ejecutar ..
// se procede a recorrer el array ejecutando una a una cada consulta.
foreach( $consultas as $sql_temporal ){
  echo 
'Consulta:<br>'.$sql_temporal.'<br>';
  
$consulta mysql_query$sql_temporal ) or die('Error: '.mysql_error());
  echo 
'... OK ...<br><br>';
}

?>
Un saludo,