Ver Mensaje Individual
  #13 (permalink)  
Antiguo 03/11/2004, 11:54
Avatar de ferny
ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 2 meses
Puntos: 55
Claro, es que se te ha olvidado ponerle comillas. Es que no es tan sencillo modificar el código... Los valores en campos de tipo texto tienes que ponerlos entre comillas ' y luego "escapar" esa comilla poniendoles \\ delante si aparece una en el texo, para ello usa:


Código PHP:
str_replace("'","\\'",$tuvariable); 
Es cuestión de tener cuidado con eso. Te dejo parte del código de mi archivo para hacer la copia de la tabla phpbb_post_text, miralo y verás los cambios que hay que hacer según la variable sea tipo entero o tipo texto:


Código PHP:
echo "INSERT INTO `phpbb_posts_text` (`post_id`, `bbcode_uid`, `post_subject`, `post_text`) VALUES ";
    while (
$row=mysql_fetch_row($res)){
        
$row[2]=str_replace("'","\\'",$row[2]);
        
$row[3]=str_replace("'","\\'",$row[3]);
        
$row[3]=str_replace("\r\n","\\r\\n",$row[3]);
        echo 
"(".$row[0].", '".$row[1]."', '".$row[2]."', '".$row[3]."')";
        if (
$i!=$filas) { echo ",\r\n"; } else { echo ";"; }
        
$i++;

Básicamente lo que hago es sustituir las comillas ' que aparecen en el texto por su valor escapado \\' (así me evito errores de que me finalice la cadena de caracteres cuando no es debido). Eso para los dos campos de texto, el post_subject y el post_text

Además reemplazo los saltos de linea \r\n por su equivalente escapado \\r\\n con el único fin de que cada insert ocupa una sóla linea.

Saludos
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.