<?php$dbhost = '22.28.194.45';
$dbuser = 'sc004226';
$dbpass = 'nihao';
$dbname = 'sc004226';$tar_dbhost = '127.0.0.1';
$tar_dbuser = 'root';
$tar_dbpass = 'nihaoa';
$tar_dbname = 'tesss';$db = mysql_connect($dbhost, $dbuser, $dbpass, true);
if(!$db){
die("无法连接数据库");
}
if(!mysql_select_db($dbname, $db))
die("数据库不存在");
$tar_db = mysql_connect($tar_dbhost, $tar_dbuser, $tar_dbpass, true);
if(!$tar_db){
die("无法连接数据库");
}
if(!mysql_select_db($tar_dbname, $tar_db))
die("数据库不存在");
$tables = mysql_query("show tables", $db);
$result_array = array();
while($r = mysql_fetch_assoc($tables)){
$result_array = array_merge($result_array, array_values($r));
}
$v = "tour";
$filename = $v.'.txt';
echo "table $v <br>";
$incsql = "insert into $v values ";
$result = mysql_query("select * from $v LIMIT 0 , 2" , $db);
if($result){
$i = 0;
while($r = mysql_fetch_assoc($result)){
$ii = 0 ;
$valsql = "";
foreach($r as $kk=>$vv){
if ($ii==0){
$valsql = "('$vv'";
}else{
$valsql .= ",'$vv'";
}
//echo " $kk : $vv <br>";
$ii++;
}
$valsql = "$valsql )" ;
if ($i == 0 ){
$incsql .= $valsql;
}else{
$incsql = "," .$valsql;
}
$i++;
echo " $incsql <br>";
}
}
//$incsql = "'".$incsql."'";//$handle = fopen($filename, 'w');
//fwrite($handle, $incsql);mysql_select_db($tar_dbname);
$result = mysql_query($incsql);
//mysql_query($incsql , $tar_db);
//file_put_contents ($filename, $incsql);// 问题1,写入文件为何就最后一组数据
/*
echo 结果 :insert into tour values ('8','青龙峡','怀柔区(Huairou)','116.684246063232','40.4542622499432','4','','','','
怀柔青龙峡是一处集田园风光、山川秀色、碧水环绕、飞瀑流泉、长城古貌为特色的旅游观光、度假休闲的风景胜地。始建于明朝万历年间的古老长城,环卧在奇峰峻岭之巅,虽历经几百年风雨沧桑,仍以其原始的古老风貌,成为世人游览的万里长城名胜古迹。景区内还开发有蹦极、速降、攀岩、沙滩浴场、沙滩足球、沙滩排球、竹筏、划船、虹鳟鱼垂钓等集体育健身娱乐为一体的游乐项目。建有民居式客房、林荫木屋,餐厅及卡拉OK等服务娱乐设施。
','2','2009-05-25','电 话: 69661781 票 价: 门票15元/人,学生儿童半价 交 通: 北京市怀柔怀北镇境内;北京北站7:13郊游3次,9:30可直达;宣武门,东大桥乘游16,东直门乘916、936可直达 ','','/tour/upfile/200407/20047231320450.gif','','1','','0','74','','','1' )
,('9','四海水上乐园','石景山区(Shijingshan)','116.182479858398','39.9364608235118','4','','','','位于石景山区八大处高科技园西,游乐项目有高架水滑梯、儿童嬉水区、环流泳区和静流泳区、造浪池、假山洞滑道等。','2','2009-05-25','交通路线:地铁苹果园站东200米往北,或乘336、501、318、965路可达。驾车从长安街到古城后,右拐直行到头即到。 ','','/tour/upfile/200408/2004861001000.jpg','','1','','0','86','','','1' ) tour.txt 内容却是 ,('9','四海水上乐园','石景山区(Shijingshan)','116.182479858398','39.9364608235118','4','','','','位于石景山区八大处高科技园西,游乐项目有高架水滑梯、儿童嬉水区、环流泳区和静流泳区、造浪池、假山洞滑道等。','2','2009-05-25','交通路线:地铁苹果园站东200米往北,或乘336、501、318、965路可达。驾车从长安街到古城后,右拐直行到头即到。 ','','/tour/upfile/200408/2004861001000.jpg','','1','','0','86','','','1' )
*/
// 问题2,为何写入不到 $tar_dbname ,也没有错误提示
?>
$dbuser = 'sc004226';
$dbpass = 'nihao';
$dbname = 'sc004226';$tar_dbhost = '127.0.0.1';
$tar_dbuser = 'root';
$tar_dbpass = 'nihaoa';
$tar_dbname = 'tesss';$db = mysql_connect($dbhost, $dbuser, $dbpass, true);
if(!$db){
die("无法连接数据库");
}
if(!mysql_select_db($dbname, $db))
die("数据库不存在");
$tar_db = mysql_connect($tar_dbhost, $tar_dbuser, $tar_dbpass, true);
if(!$tar_db){
die("无法连接数据库");
}
if(!mysql_select_db($tar_dbname, $tar_db))
die("数据库不存在");
$tables = mysql_query("show tables", $db);
$result_array = array();
while($r = mysql_fetch_assoc($tables)){
$result_array = array_merge($result_array, array_values($r));
}
$v = "tour";
$filename = $v.'.txt';
echo "table $v <br>";
$incsql = "insert into $v values ";
$result = mysql_query("select * from $v LIMIT 0 , 2" , $db);
if($result){
$i = 0;
while($r = mysql_fetch_assoc($result)){
$ii = 0 ;
$valsql = "";
foreach($r as $kk=>$vv){
if ($ii==0){
$valsql = "('$vv'";
}else{
$valsql .= ",'$vv'";
}
//echo " $kk : $vv <br>";
$ii++;
}
$valsql = "$valsql )" ;
if ($i == 0 ){
$incsql .= $valsql;
}else{
$incsql = "," .$valsql;
}
$i++;
echo " $incsql <br>";
}
}
//$incsql = "'".$incsql."'";//$handle = fopen($filename, 'w');
//fwrite($handle, $incsql);mysql_select_db($tar_dbname);
$result = mysql_query($incsql);
//mysql_query($incsql , $tar_db);
//file_put_contents ($filename, $incsql);// 问题1,写入文件为何就最后一组数据
/*
echo 结果 :insert into tour values ('8','青龙峡','怀柔区(Huairou)','116.684246063232','40.4542622499432','4','','','','
怀柔青龙峡是一处集田园风光、山川秀色、碧水环绕、飞瀑流泉、长城古貌为特色的旅游观光、度假休闲的风景胜地。始建于明朝万历年间的古老长城,环卧在奇峰峻岭之巅,虽历经几百年风雨沧桑,仍以其原始的古老风貌,成为世人游览的万里长城名胜古迹。景区内还开发有蹦极、速降、攀岩、沙滩浴场、沙滩足球、沙滩排球、竹筏、划船、虹鳟鱼垂钓等集体育健身娱乐为一体的游乐项目。建有民居式客房、林荫木屋,餐厅及卡拉OK等服务娱乐设施。
','2','2009-05-25','电 话: 69661781 票 价: 门票15元/人,学生儿童半价 交 通: 北京市怀柔怀北镇境内;北京北站7:13郊游3次,9:30可直达;宣武门,东大桥乘游16,东直门乘916、936可直达 ','','/tour/upfile/200407/20047231320450.gif','','1','','0','74','','','1' )
,('9','四海水上乐园','石景山区(Shijingshan)','116.182479858398','39.9364608235118','4','','','','位于石景山区八大处高科技园西,游乐项目有高架水滑梯、儿童嬉水区、环流泳区和静流泳区、造浪池、假山洞滑道等。','2','2009-05-25','交通路线:地铁苹果园站东200米往北,或乘336、501、318、965路可达。驾车从长安街到古城后,右拐直行到头即到。 ','','/tour/upfile/200408/2004861001000.jpg','','1','','0','86','','','1' ) tour.txt 内容却是 ,('9','四海水上乐园','石景山区(Shijingshan)','116.182479858398','39.9364608235118','4','','','','位于石景山区八大处高科技园西,游乐项目有高架水滑梯、儿童嬉水区、环流泳区和静流泳区、造浪池、假山洞滑道等。','2','2009-05-25','交通路线:地铁苹果园站东200米往北,或乘336、501、318、965路可达。驾车从长安街到古城后,右拐直行到头即到。 ','','/tour/upfile/200408/2004861001000.jpg','','1','','0','86','','','1' )
*/
// 问题2,为何写入不到 $tar_dbname ,也没有错误提示
?>
默认是覆盖前面的内容.
如果不想的话,可以加个参数FILE_APPEND
file_put_contents ($filename, $incsql,FILE_APPEND );
大概的看了一下你的insert内容,我想你是想要把数组里的东西写入你的.txt文本文档吧。如果是这样的话,你可以把fwrite()放在for循环中去写入,遍列数组的同时写入数据,这样就不会是你所说的只写入最后一条数据了。
关于问题2,你的$tar_dbname这个变量是数据库的吧,数据是要写入表里的,当然不能写入库里,你得先在库里建表,再把数据写入表里。
mysql_error() — Returns the text of the error message from previous MySQL operation
mysql_query($incsql , $tar_db); 这条语句不生效
if ($i == 0 ){
$incsql .= $valsql;
}else{
$incsql = "," .$valsql;
} 你的代码太乱了,也不帖个格式出来,真服了.
看到没,如果$i不等于0, sql变量就被重写了.
if($result){
$i = 0;
while($r = mysql_fetch_assoc($result))
{
$ii = 0 ;
$valsql = "";
foreach($r as $kk=>$vv)
{
if ($ii==0)
{
$valsql = "('$vv'";
}
else
{
$valsql .= ",'$vv'";
}
//echo " $kk : $vv <br>";
$ii++;
}
$valsql = "$valsql )" ;
if ($i == 0 )
{
$incsql .= $valsql;
}
else
{
$incsql = "," .$valsql;
}
$i++;
echo " $incsql <br>";
}
}
if($result){
$i = 0;
while($r = mysql_fetch_assoc($result)){
$ii = 0 ;
$valsql = "";
foreach($r as $kk=>$vv){
if ($ii==0){
$valsql = "('$vv'";
}else{
$valsql .= ",'$vv'";
}$ii++;
}
$valsql = "$valsql )" ;
if ($i == 0 ){
$incsql .= $valsql; //// 第一条记录的时候,有点的
}else{
$incsql = "," .$valsql; //// 第二条记录的时候,无点的,直接赋值,那么前次的值(第一条记录的值)被覆盖了
}
$i++;
echo " $incsql <br>";
}
}
mysql_select_db($tar_dbname); //// 这样是不对的,试试 mysql_select_db($tar_dbname, $tar_db)
$result = mysql_query($incsql);//mysql_query($incsql , $tar_db); //// 这里不能插入可能是因为你的sql语句不对
马虎聚搜