根据条件导出mysql数据库中的数据

2012年4月2日 发表评论 阅读评论

在phpmymysql数据库中导出数据时,无法根据给定的条件导出对应的数据信息,这经常会给我们带来些麻烦。为了解决这个问题,特意写了短代码,以方便使用。

该代码中没有做文件的导出,是直接输出在页面中的。如何有需要可以稍加修改,实现文件的导出。

<?php
require_once("cms_init.php");

if($_SERVER['REQUEST_METHOD'] == "POST")
{
$db_database = new SqlLite();

$sql = getVars(‘out_sql’);
$out_sql_fields = "INSERT INTO ";
$result = mysql_query($sql);

if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}

if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}

$fields = mysql_num_fields($result);
$rows   = mysql_num_rows($result);
$table = mysql_field_table($result, 0);
$out_sql_fields .= $table.’(‘;
//字段
for($i = 0; $i < $fields; $i++){
$out_sql_fields .= "`" . mysql_field_name($result, $i) . "`, ";
}
$out_sql_fields = substr($out_sql_fields,0,-2).") VALUES \r\n";

//获取数据
$out_sql_values = "";
$out_sql = "";
$cur_i = 0;
$lines_num = 30;
while ($rows = mysql_fetch_array($result)) {
$out_sql_values = "";
$out_sql_values .= "(";
for($i = 0; $i < $fields; $i++){
$type  = mysql_field_type($result, $i);
if($type == ‘int’)
$out_sql_values .= $rows[$i].", ";
else{
$out_sql_values .= "’".addslashes(str_replace(array("\r\n","\n"),"",$rows[$i]))."’, ";
}
}
$out_sql_values = substr($out_sql_values,0,-2)."),";
if($cur_i%$lines_num == 0){
if($cur_i != 0) $out_sql = substr($out_sql,0,-3).";\r\n";
$out_sql .= $out_sql_fields.$out_sql_values."\r\n";
}else{
$out_sql .= $out_sql_values."\r\n";
}
$cur_i++;
}
$out_sql = substr($out_sql,0,-3).";";
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xn="http:///www.renren.com/2009/xnml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>导出数据</title>
<body>
<form name="outputdata" action="" method="post">
执行SQL语句:
<textarea name="out_sql" cols="50" rows="5"><?php echo $sql;?></textarea>
<input type="submit" name="submit" value="执行">
</form>
<p>共 <?php echo $cur_i;?> 条数据</p>
<p>导出数据:
<textarea wrap="OFF" id="textSQLDUMP" rows="30" cols="50" name="sqldump" style="width: 757px; height: 499px;">
<?php echo $out_sql;?>
</textarea></p>
</body>


转载请注明来自:[MSN Spaces]http://msn.shandian.biz/169.html

  1. 本文目前尚无任何评论.