首页 > php与数据库 > 将OICQ数据转成MYSQL数据

将OICQ数据转成MYSQL数据

This file is /tmp/phpBeoJQ5 .  

################# You can copy this code to test #################  


<?php
include ("include/dbclass.inc"); //可以用 MYSQL.INC 类代替测试
$q = new DB_Sql;
$db = $q->Database; //define the database
mysql_connect('localhost:3306', $q->User, $q->Password);
?>


<form method="post" action="<?php
echo $PHP_SELF; ?>"  
enctype="multipart/form-data">  
<input type="file" name="csv_file"  
value="<?php
echo $csv_file; ?>">&nbsp;&nbsp;  
terminated by <input type="text" name="terminated"  
value="," size=2><p>  
Which table you want to insert ?  
<?php
show_table($db, $table); ?><p>  
<input type="submit" name="submit" value="go">  
</form>  
<?php
function show_field($db, $table, $num, $selected_field) {
    $result = mysql_db_query($db, "SHOW KEYS FROM $table") or mysql_die();
    $primary = "";
    while ($row = mysql_fetch_array($result)) if ($row["Key_name"] == "PRIMARY") $primary.= "$row[Column_name], ";
    $result = mysql_db_query($db, "SHOW FIELDS FROM $table");
    if (!$result) {
        mysql_die();
    } else {
        echo "<select name=field$num>n";
        while ($row = mysql_fetch_array($result)) {
            $selected = ($selected_field == $row["Field"]) ? "selected" : "";
            echo "<option value=" . $row["Field"] . " $selected>" . $row["Field"] . "</option>n";
        }
        echo "</select>nn";
    }
}
function show_table($db, $selected_table) {
    $tables = mysql_list_tables($db);
    $num_tables = @mysql_numrows($tables);
    if ($num_tables == 0) {
        echo "no table yet";
    } else {
        $i = 0;
        echo "<select name=table>n";
        while ($i < $num_tables) {
            $table = mysql_tablename($tables, $i);
            $selected = ($selected_table == $table) ? "selected" : "";
            echo "<option value=$table $selected>$table</option>n";
            $i++;
        }
        echo "</select>nn";
    }
}
if ($submit) {
    if (!empty($csv_file) && $csv_file != "none") {
        //$csv_file = stripslashes($csv_file);
        $fp = fopen($csv_file, "r");
        // show first line of the csv file to select dababase table and its fields
        echo "<form method=post action=$PHP_SELF>";
        $csv_data = fgetcsv($fp, 2000, "$terminated");
        $num = count($csv_data);
        for ($c = 0; $c < $num; $c++) {
            $field_name[$c] = $csv_data[$c];
            echo $field_name[$c] . "&nbsp;&nbsp;n";
            $table_field_name = "field$c";
            show_field($db, $table, $c, $$table_field_name);
            echo "<br>";
        }
        // copy the tmp file for next use
        $dest = "/tmp/csv_file.csv";
        copy($csv_file, $dest);
        echo "<input type=hidden name=csv_file value=$dest>n" . "<input type=hidden name=table value=$table>n" . "<input type=hidden name=terminated value=$terminated>n" . "<input type=submit name=submit value=ok></form><p>n";
        // when click 'ok' button ,start insert data
        if ($submit == "ok") {
            $NO = 1;
            while ($csv_data = fgetcsv($fp, 2000, "$terminated")) {
                //$num = count($csv_data);
                for ($c = 0; $c < $num; $c++) {
                    $table_field_name = "field$c";
                    $first_3 = substr($$table_field_name, 0, 3);
                    $first_2 = substr($$table_field_name, 0, 2);
                    $val_tmp = ($first_3 == "fid" || $first_3 == "int" || $first_2 == "id") ? $csv_data[$c] : "'" . $csv_data[$c] . "'";
                    $val.= $val_tmp . ",";
                    $var.= $$table_field_name . ",";
                }
                $val = substr($val, 0, -1);
                $var = substr($var, 0, -1);
                $query = "INSERT INTO $table ($var) VALUES ($val)";
                $val = "";
                $var = "";
                $q->query($query);
                echo "NO. $NO $query<p>";
                $NO++;
            }
            fclose($fp);
        }
    }
}
?>


文章链接:http://www.phprm.com/database/13c3e68af3a708f210db6a17d9aa537e.html

随便收藏,请保留本文地址!

标签:none

发表留言