php、MYSQL数据转存的问题``谢谢
发布网友
发布时间:2022-05-07 12:26
我来回答
共2个回答
懂视网
时间:2022-05-07 16:47
用的是Navicat客户端,有两个实用的转移数据傻瓜方法
1、同客户端连接服务器数据库和本地数据库,可直接复制相应表到相应服务器数据库粘贴,即可创建表及导入数据;
2、不同地,可右击要导的数据库-转储Sql文件 导入个.sql脚本,再到要导入的数据库服务器 新建那个数据库名字一致,建个查询,载入那脚本,执行即可创建表及导入数据。
热心网友
时间:2022-05-07 13:55
提供一个思路和部分代码
假定你上面的blog数组为$blogs,
(1)提取blogid,然后去数据库中提取评论.
$comments = array();
foreach($blogs as $bitem){
$blogid = $bitem['blogid'];
//提取两条评论
$sql = "select * from a where blogid =".$blogid." limit 2";
$result = mysql_query($sql);
$one_blog_comment = array();
while($row = mysql_fetch_array($result)){
$one_blog_comment[] = $row;
}
if(count($one_blog_comment)==2){//取到了两条评论,组装成一条纪录
$comment_b = "(".$blogid,$one_blog_comment[0]['username'].",".$one_blog_comment[0]['message'].",".$one_blog_comment[1]['username'].",".$one_blog_comment[1]['message'].")";
$comments[] = $comment_b;
}else if(count($one_blog_comment)==1){//只取到了一条评论
$comment_b = "(".$blogid,$one_blog_comment[0]['username'].",".$one_blog_comment[0]['message'].",'',''")";
$comments[] = $comment_b;
}
}
(2)
//批量插入
$sql = "insert into b(blogid,username1,message1,username2,message2) values ".implode(",",$comments);
$result = mysql_query($sql);
===============
上述代码未经测试,可能会有小错误,请自行修正.另外在从a表取评论时,假定你的a表字段名称与b表相同
==========
但是表B中已经存在blogid了,所以不能用insert,要用update的话要怎么写呢?
============
那就不能批量插入了.而是在第一步执行update.
修改这里:
if(count($one_blog_comment)==2){//取到了两条评论,组装成一条纪录
$update_sql = "update b set username1='"$one_blog_comment[0]['username']."',message1='".$one_blog_comment[0]['message']."',username2='".$one_blog_comment[1]['username']."',message2='".$one_blog_comment[1]['message']."' where blogid=".$blogid;
$update = mysql_query($update_sql);
}else if(count($one_blog_comment)==1){//只取到了一条评论
$update_sql = "update b set username1='".$one_blog_comment[0]['username']."',message1='".$one_blog_comment[0]['message']."' where blogid=".$blogid;
$update = mysql_query($update_sql);
}