我正在尝试将.csv
文件导入MySql
这是我的.csv
文件:
,AI,MD5('AIRT2015'),RRHH,14,,,AION S.A. DE C.V.,
这是我的db结构:
当我上传.csv
文件时,我看到的密码与我的.csv
文件完全相同...
关于如何加密上传它的任何想法?
谢谢
答案 0 :(得分:2)
首先,网上有关于为什么单独使用MD5存储密码不是一个好主意的帖子(请参阅此great answer或搜索谷歌了解更多信息),但要实现你的目标想要使用md5哈希作为示例,您需要在没有.csv
包装器的md5()
文件中使用密码,并使用某种脚本语言来解析文件并INSERT
将值放入数据库中。例如,如果它是一个Web应用程序,您可以使用以下行中的PHP
:
<?php
// database variables, change these to your details
$dbhost = 'localhost';
$dbusername = 'username';
$dbpassword = 'password';
$dbname = 'database';
$tablename = '`table`';
// file path
$filepath = 'path/to/file.csv';
// connect to the database
$db = mysqli_connect($dbhost, $dbusername, $dbpassword, $dbname);
// get the contents of your file as an array of lines
$lines = file($filepath);
// loop through lines in the array
foreach($lines as $line) {
// split the lines by comma
$split = explode(',', $line);
// we know that the password will be the third element in the array...
// so we hash it and push it back in the same point in the array
$split[2] = md5($split[2]);
// build sql query
$sql = "INSERT INTO {$tablename} (ID_ASOCIADO,USERNAME,PASSWORD,...) VALUES ('" . implode("','", $split) . "')";
// run query and put result into variable
$result = mysqli_query($db, $sql);
if ($result === TRUE) {
echo "RECORD CREATED SUCCESSFULLY => " . $line . PHP_EOL;
} else {
echo "INSERT FAILED WITH ERROR => " . mysql_error($db);
}
}
有关使用php
和mysqli
的详细信息,请参阅here。它们有很多很好的例子和解释,特别是在双界面和语句页面上。