php对两个mysql数据表的修改问题?把表A的内容更新到表B里面。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php对两个mysql数据表的修改问题?把表A的内容更新到表B里面。相关的知识,希望对你有一定的参考价值。

我有个phpmysql问题如下,不知道高手能否帮忙实现。

有数据库A和数据库B

数据库A的有一名为"oldperson"的表,只有四个列字段顺序是:"id","yourname","resume","date"。
数据库B有一个名为"newperson"的表,但有六个列字段按顺序分别是:"id","fullname","work","age","title","sex"。

现在要把数据A表的"yourname"列数据插入到-->数据B表的"fullname"里面;"resume"-->"work";"date"-->"age"。
因数据表"newperson"中已有一部分数据,不能删除。只能把A的数据更新到B。更新内容时,相应字段没有内容,就全部留空。

能否做一个php 文件,按确认更新,就可以把A的数据更新到B里面。
仅,也只有20分。谢谢高手

如果你的库A和库B在同一台机器上,而且你的MySQL用户对两个库都有足够权限,其实一句SQL就可以解决问题了
INSERT INTO 库B.newperson SELECT null, yourname, resume, date, '', '' FROM 库A.oldperson;
参考技术A <?php
if($_POST[submit])
$conn = mysql_connect('主机ip', '数据库用户名', '数据库密码', 1);
mysql_select_db('库A');
$queryA = mysql_query("SELECT * FROM oldperson");
while ($resultA = mysql_fetch_array($queryA))
$dataA[] = $resultA;

mysql_select_db('库B');
foreach ($data as $k => $v)
$queryB = mysql_query("INSERT INTO newperson (id, fullname, work, age, title, sex) VALUES ('', '$v[yourname]'), '$v[resume]', '$v[age]', '', ''");


?>
<form action="startupdate.php" method="POST">
<input type="submit" name="submit" value="开始更新" />
</form>

将代码保存为startupdate.php
参考技术B <?php
if(isset($_POST['submitted']))
$conn = mysqli_connect("localhost", "root", "root", "database"); //数据库连接
$sql = "SELECT * FROM oldperson"; //从oldpreson取出所有数据
$result = mysqli_fetch_array($conn, $sql);
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
$oldperson[] = $row;


if(empty($oldperson)) //把取出的数据导入到newperson
foreach($oldpreson as $oldp)
$sql = "INSERT INTO newperson(fullname, work, age, title, sex) VALUES ('$oldp["yourname"]', '$oldp["resume"]', '$oldp["date"]', '', '')";
mysqli_query($conn, $sql);

echo "更新成功!<br />";


?>
<form action="" method="post">
<input type="hidden" name="submitted" value="1" />
<input type="submit" name="sub" value="更新" />
</form>

把表A 数据插入表B时提示 ‘将截断字符串或二进制数据。 语句已终止’ 。如何找到被截断数据或字段。

字段太多一个个排除不现实。
不想修改表B结构

你是否确认两个链表的数据类型是相同的,或者是char型,插入到int类型的表中呢?加入将char *型、double型数据插入到int 或 char型表中,就有可能发生你上面所说的问题。 参考技术A 不修改结构 修改字段就行了 使用字段类型转换
比如现在是日期型的数据 你可以改成to_char(参数,"yyyymmdd") 类似这样的修改就行了
具体要修改成什麽类型 要使用什麽函数 网上都有
参考技术B 长度

以上是关于php对两个mysql数据表的修改问题?把表A的内容更新到表B里面。的主要内容,如果未能解决你的问题,请参考以下文章

把表A 数据插入表B时提示 ‘将截断字符串或二进制数据。 语句已终止’ 。如何找到被截断数据或字段。

MySQL怎么把表中一个字段数据复制到另外一个表的某个字段下

Mysql MyISAM数据库批量转换表引擎为Innodb

mysql数据库中我把表中没用的字段删了,下次我打开时又自动出现了,再删还是会出现,是怎么回事?

mysql lower_case_table_names ---- 一律把表名处理为小写

PHP+mysql数据的添加修改删除