我的趋势表中有这个结构,我正在上传一个csv文件到mysql服务器。我想把我的文件名插入每行的源日期。如何将文件名作为 date_sourced
列
例子 2018-10-02_trx_result.csv
我的文件名是这样的吗 2018-10-02
当我上传我的csv时,应该为每一行放置
date_sourced : date
sha1: varchar(255)
vsdt: varchar(255)
trendx:varchar(255)
notes:varchar(255)
上传我的csv的php代码。
<?php
if(isset($_POST['submit'])) {
$host = 'localhost';
$user = 'root';
$password = '';
$db = 'jeremy_db';
ini_set('max_execution_time', 500);
$con = mysqli_connect($host,$user,$password) or die('Could not' .mysqli_error($con));
mysqli_select_db($con, $db) or die ('Could not' .mysqli_error($con));
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
ini_set ('memory_limit', filesize ($file) + 4000000);
$c = 0;
while(($csvdata = fgetcsv($handle,10000,","))!== FALSE){
$sha1 = $csvdata[0];
$vsdt = $csvdata[1];
$trendx = $csvdata[2];
$sql = "INSERT INTO jeremy_table_trend (sha1,vsdt,trendx) VALUES ('$sha1','$vsdt','$trendx')";
$query = mysqli_query($con , $sql);
$c = $c+1;
}
if($query){
echo '<script type="text/javascript">';
echo ' alert("CSV uploaded to server");';
echo ' window.location.href = "trendx.php";';
echo '</script>';
}
else {
echo "SLAM";
}
}
?>
html代码:
<form id = "myForm" class="ui input" enctype="multipart/form-data" method = "POST" action="trend_upload_csv.php" role = "form">
<input type = "file" name ="file" id="file" size = "150">
<input id="myBtn" class="ui small red button" type = "submit" class = "btn btn-default" name ="submit" onclick = "myFunction();" value = "Upload CSV" disabled />
</form>
请帮助我,我不知道如何修剪文件名并将文件名插入mysql:(
2条答案
按热度按时间im9ewurl1#
你可以这样做,
您可以插入
$date
直接插入sql语句。还要确保文件中的日期格式始终是YYYY-MM-DD
.bsxbgnwa2#
如果文件名的格式
2018-10-02_trx_result.csv
(即日期后跟_
以及名称的其余部分),您可以使用explode
:然后您可以编辑查询以包含
$date
:请注意,您应该真正使用prepared语句来防范(例如)数据值中包含单引号以及其他可能的sql注入攻击。看看这个答案。