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