取字段数多的表,将其所有字段名做成一个数组,将要插入的字段做为一个数组
假设插入字段如下
$inert_arr = ("name"=>"ice","title"=>"test");
假设所有字段如下:
$field_arr = array("name","title","time","study_0","study_1","study_2");
$sql = "insert into tbl (";
$tmp = "";
foreach ($field_arr as $v)
{
if (isset($insert_arr[$v]))
{
$tmp .= $v."',";
}
}
//去掉最后一个逗号
$value = substr($value, 0, strlen($value)-1);
$sql .= $tmp.")";
$sql .= " VALUES(";
$value = "";
foreach ($field_arr as $v)
{
if (isset($insert_arr[$v]))
{
$value .= "'".$insert_arr[$v]."',";
}
}
//去掉最后一个逗号
$value = substr($value, 0, strlen($value)-1);
$sql .= $value.")";
mysql_query($sql);
假设插入字段如下
$inert_arr = ("name"=>"ice","title"=>"test");
假设所有字段如下:
$field_arr = array("name","title","time","study_0","study_1","study_2");
$sql = "insert into tbl (";
$tmp = "";
foreach ($field_arr as $v)
{
if (isset($insert_arr[$v]))
{
$tmp .= $v."',";
}
}
//去掉最后一个逗号
$value = substr($value, 0, strlen($value)-1);
$sql .= $tmp.")";
$sql .= " VALUES(";
$value = "";
foreach ($field_arr as $v)
{
if (isset($insert_arr[$v]))
{
$value .= "'".$insert_arr[$v]."',";
}
}
//去掉最后一个逗号
$value = substr($value, 0, strlen($value)-1);
$sql .= $value.")";
mysql_query($sql);
待操作的字段
$fields = 'name,title,time,study_0,study_1,study_2';产生的查询串
$sqlstr = "select $test from mytable_a where id=$id";查询
$rs = mysql_query($sqlstr);上面的和你的一样,接下来请注意看
构造变量列表
$vars = "\$".join(",\$",split(",",$fields));
构造值变量列表
$values = "'\$".join("','\$",split(",",$fields))."'";
读取数据
eval("list($vars)=mysql_fetch_row(\$other);");
构造sql串
$sql = "insert into mytable_b ($fields) value ($values)";
执行插入
mysql_query($sql);
insert into mytable_b (name,title,time,study_0,study_1,study_2) value ('$name','$title','$time','$study_0','$study_1','$study_2')就成了这样的情况.而正常情况下,'$name'应该是'张三'这样的内容才是.烦请再帮看一下,好吗?谢谢
$sql = "insert into mytable_b ($fields) value ($values)";
应写作:
$sql = eval("return \"insert into mytable_b ($fields) value ($values)\";");
//假设两个库中需要输入数据的字段如下$fields = 'name,title,time,study_0,study_1,study_2';
$id=3; //假设每次输入一条数据//产生的查询串
//设mytable_a为读取数据的库
$sqlstr = "select $fields from mytable_a where id=$id";//查询
$rs = mysql_query($sqlstr);//构造变量列表
$vars = "\$".join(",\$",split(",",$fields));//构造值变量列表
$values = "'\$".join("','\$",split(",",$fields))."'";//读取数据
eval("list($vars)=mysql_fetch_row(\$rs);");//将数据赋值
//这是抄手册上的,为什么这么弄我也搞不清楚,惭愧.
eval( "\$values = \"$values\";" );//构造sql串
$sql = "insert into mytable_b ($fields) value ($values)";//执行插入
mysql_query($sql);
?>