我与yii和任何人都可以帮助我上传CSV文件与多行到数据库使用yii。
表格结构
创建表格users
(id
整数不为空,title
varchar(1000)不为空,description
varchar(1000)不为空,phase
varchar(1000)字符集排序不为空)引擎=InnoDB默认字符集排序=
我的测试CSV文件包含以下字段
| 职称|项目名称|阶段|
| - -|- -|- -|
| 登入|登录和注销|四个|
我的视图页面form.php
<div class="form">
<?php
$form = $this->beginWidget('LiveActiveForm', array(
'id' => 'project-document-form',
'enableAjaxValidation' => false,
'htmlOptions'=>array('enctype' => 'multipart/form-data'),
));
?>
<div class="row">
<div class="col-md-6">
<?php echo $form->fileFieldRow($model,'filename');?>
<?php if(Yii::app()->user->hasFlash('error')): ?>
<div class="success" style="color:red;" id="error_file">
<?php echo Yii::app()->user->getFlash('error'); ?>
</div>
<?php endif;?>
<?php if(Yii::app()->user->hasFlash('success')): ?>
<div id="success" class="success" style="color:green;">
<?php echo Yii::app()->user->getFlash('success'); ?>
</div>
<?php endif;?>
<?php Yii::app()->clientScript->registerScript('myHideEffect', ' $( "#ProjectDocument_filename" ).parent().append($( "#error_file" ));', CClientScript::POS_READY ); ?>
<div class="form-group">
<?php
$this->widget('LiveButton', array(
'buttonType'=>'submit',
'type' => 'primary',
'label' => 'Upload File',
'size' => 'small',
'icon'=>'icon-upload icon-white',
'htmlOptions'=>array('name'=>'uploadCSV','style'=>'float:left;'),
));
?>
</div>
</div>
<div class="form-actions">
<?php echo CHtml::link('<i class="icon-download-alt icon-white"></i>Download CSV Format',array('ProjectDocument/downloadfile'),array('class'=>'btn btn-success','style'=>'float:right;')); ?>
</div>
</div>
<?php $this->endWidget(); ?>
<script type="text/javascript">
$(document).ready(function(){$("#success").fadeOut(10000);});
</script>
</div><!-- form -->
Csv文件上传工作正常,但我不知道如何从文件中插入数据并存储到数据库中。
1条答案
按热度按时间tf7tbtn21#
看起来您使用的是MySQL或MariaDB。如果您在服务器上本地保存了文件(即正确上传),则可以执行SQL
有关详细信息,请参阅MySQL documentation。
Yii2中的直接SQL是使用以下语句完成的:
那看起来就像