我做了一个安装程序 期间有几个问题一直没搞明白 恳请各位指导
1 printf( "\n".$buffer); 里面的 \n 为什么起不到换行的作用?
2 fgets($hand) 读出来的是一行 为什么直接放到 $db->query()执行时报错 我做了str_replace( "\r\n","\n",$buffer ) 也不行 下面我把代码帖上function createtables($file)
{
  global $db;
  $hand = fopen($file,"r");//打开指定的文件 $file
  if ( $hand )
{
  while( !feof( $hand ) )
{
  //取得行
  $buffer = fgets( $hand );
  //printf( "\n".$buffer."\n");
  printf( "<br>$buffer<br>");
  $buffer = str_replace( "\r\n","\n",$buffer );
  printf( "<br>$buffer<br>");
  //向数据库发送请求
  //$db->query($buffer);
  if( $buffer != null )
{
  if( $db->query($buffer) )
echo "\nit's work!\n";
  else
echo "\n It's don't work!!! \n";
}
  else
{
  break;
}
}
}
  fclose($hand);
}数据库文件是这样的create table user (
uid int(10) auto_increment,
gid int(10),
usernc varchar(50),
pwd varchar(50),
email varchar(100),
emid int(10),
ip varchar(10),
regtime datetime,
lastlogintime datetime,
logintimes int(8),
language varchar(10),primary key (uid)
)engine = myisam character set utf8 collate utf8_unicode_ci;

解决方案 »

  1.   

    \n换行可以在以下方式出现:
    一,用pre括起来
    二,用textarea括起来
    三,cli模式运行
    第二个问题,只读一行的话,你的第一行是
    create table user (
    这个直接传给sql,当然会出错
      

  2.   

    在 mysql 自带的连接端里 不是可以 输入第一行后回车 它会等待下一个输入 直到碰到结束符才会执行的吗?