<?php
//数据下标为临时表对应的字段,其值为要插入表对应的字段
//如A表中的XH 对应B表中的base_account字段
$list=array(
'XH' =>'base_account',
'XM' =>'base_name',
'KSH' =>'base_KSH',
'SFZH' =>'base_SFZH',
'RXRQ' =>'base_RXRQ',
'BJYJL' =>'base_BJYJL',
'ZSBH' =>'base_ZSBH',
'ZSXLH' =>'base_ZSXLH',
)/*算法一*/
/*listarray.php文件为定义一个数组,与临时表的字段进行匹配,如果临时表字段与数组
的下标相同,则取出其字段及记录,现已顺利从数据源中把数据导入临时表,临时表的结
构及数据与数据源一致
*/
require_once('listarray.php');//连接到数据库
$db= new mysqli("localhost","root","123456","dbf");/*查找临时表,因为导入的数据要向几个表中写入数据,所以现在先把数据导入临时表,
临时表跟数据源的结构及数据一致
*///取得临时表的结构信息
$sqltemp="describe $temptable";
$resulttemp=$db->query($sqltemp);
if(!$resulttemp)
{
echo $db->error;
exit;
}
else
{
$insertfield="";
$valuefield="";
while ($rowtemp=$resulttemp->fetch_object())
{
//临时表的字段
$field=$rowtemp->Field; //检测是否与指定数组的下标值与查询所得的字段值相同
if(array_key_exists($field,$list))
{
//要插入数据表的字段名称,从数组中取得
$insertfield.=$list[$field].","; //取得临时表的记录
$valuefield.="'".$row->$field."'".",";
}
}
$sql= "select * from temptable ";
$result = $db->query($sql);
while($row=$result->fetch_object())
{
$insertfield=substr($insertfield,0,(strlen($insertfield)-1));
$valuefield=substr($valuefield,0,(strlen($valuefield)-1));
$sql2="insert into base($insertfield) values ($valuefield);";
}
//以下执行sql语句向数据表中写入数据这程序到后面的$valuefield是空的,取不到值?>
//数据下标为临时表对应的字段,其值为要插入表对应的字段
//如A表中的XH 对应B表中的base_account字段
$list=array(
'XH' =>'base_account',
'XM' =>'base_name',
'KSH' =>'base_KSH',
'SFZH' =>'base_SFZH',
'RXRQ' =>'base_RXRQ',
'BJYJL' =>'base_BJYJL',
'ZSBH' =>'base_ZSBH',
'ZSXLH' =>'base_ZSXLH',
)/*算法一*/
/*listarray.php文件为定义一个数组,与临时表的字段进行匹配,如果临时表字段与数组
的下标相同,则取出其字段及记录,现已顺利从数据源中把数据导入临时表,临时表的结
构及数据与数据源一致
*/
require_once('listarray.php');//连接到数据库
$db= new mysqli("localhost","root","123456","dbf");/*查找临时表,因为导入的数据要向几个表中写入数据,所以现在先把数据导入临时表,
临时表跟数据源的结构及数据一致
*///取得临时表的结构信息
$sqltemp="describe $temptable";
$resulttemp=$db->query($sqltemp);
if(!$resulttemp)
{
echo $db->error;
exit;
}
else
{
$insertfield="";
$valuefield="";
while ($rowtemp=$resulttemp->fetch_object())
{
//临时表的字段
$field=$rowtemp->Field; //检测是否与指定数组的下标值与查询所得的字段值相同
if(array_key_exists($field,$list))
{
//要插入数据表的字段名称,从数组中取得
$insertfield.=$list[$field].","; //取得临时表的记录
$valuefield.="'".$row->$field."'".",";
}
}
$sql= "select * from temptable ";
$result = $db->query($sql);
while($row=$result->fetch_object())
{
$insertfield=substr($insertfield,0,(strlen($insertfield)-1));
$valuefield=substr($valuefield,0,(strlen($valuefield)-1));
$sql2="insert into base($insertfield) values ($valuefield);";
}
//以下执行sql语句向数据表中写入数据这程序到后面的$valuefield是空的,取不到值?>
算法二,虽然能执行,但感觉不好,请指教
/*listarray.php文件为定义一个数组,与临时表的字段进行匹配,如果临时表字段与数组
的下标相同,则取出其字段及记录,现已顺利从数据源中把数据导入临时表,临时表的结
构及数据与数据源一致
*/
require_once('listarray.php');//连接到数据库
$db= new mysqli("localhost","root","123456","dbf");/*查找临时表,因为导入的数据要向几个表中写入数据,所以现在先把数据导入临时表,
临时表跟数据源的结构及数据一致
*/
$sql= "select * from temptable ";
$result = $db->query($sql);
while($row=$result->fetch_object())
{
//取得临时表的结构信息
$sqltemp="describe $temptable";
$resulttemp=$db->query($sqltemp);
if(!$resulttemp)
{
echo $db->error;
exit;
}
else
{
$insertfield="";
$valuefield="";
while ($rowtemp=$resulttemp->fetch_object())
{
//临时表的字段
$field=$rowtemp->Field; //检测是否与指定数组的下标值与查询所得的字段值相同
if(array_key_exists($field,$list))
{
//要插入数据表的字段名称,从数组中取得
$insertfield.=$list[$field].","; //取得临时表的记录
$valuefield.="'".$row->$field."'".",";
}
}
$insertfield=substr($insertfield,0,(strlen($insertfield)-1));
$valuefield=substr($valuefield,0,(strlen($valuefield)-1));
}
$sql2="insert into base($insertfield) values ($valuefield);";
//以下为执行sql语句向数据表中写入数据
...........
}