在导入Excel表时,怎样去检查Mysql数据库里是否已经存在了呢?只有一个字段“Code”,之前写过一次代码,是每导一条记录就查询一次Mysql,如果有几千条就得查询几千次mysql。就想能不...
在导入Excel表时,怎样去检查Mysql数据库里是否已经存在了呢?
只有一个字段“Code”,之前写过一次代码,是每导一条记录就查询一次Mysql,如果有几千条就得查询几千次mysql。
就想能不能将要查询的字段,提前将查询结果生成集再去判断,结果弄了老半天都没结果(新手上路)。
下面是主要的代码。
$datetime=date("Y-m-d H:i:s");
$ipmnuml=0; //重复记录数
$ipmdenuml=0; //插入记录数
$sql=mysql_query("select Code from test ",$conn);
$sqlvalue = mysql_fetch_array($sql);
for ($i&#61;2; $i<&#61;$xls->sheets[0][&#39;numRows&#39;]; $i&#43;&#43;) {
//循环Excel表中的内容
$name &#61; $xls->sheets[0][&#39;cells&#39;][$i][1];
$name &#61; strtoupper(trim($name)); //要插入的内容
foreach( $sqlvalue as $value){
if(in_array($value,$name)){
$ipmdenuml&#43;&#43;;
}else{
$ipmnuml&#43;&#43;;
$data_values .&#61; "(&#39;$name&#39;,&#39;$datetime&#39;),";
}
&#xff5d;
ob_flush();
flush();
}
$data_values &#61; substr($data_values,0,-1); //去掉最后一个逗号
$query &#61; mysql_query("insert into test (Code,Datetime) values $data_values");//批量插入数据表中
$insert_num&#61;mysql_affected_rows();
展开