CSV文件到Yii中的数据库

qxgroojn  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(190)

我与yii和任何人都可以帮助我上传CSV文件与多行到数据库使用yii。
表格结构
创建表格usersid整数不为空,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文件上传工作正常,但我不知道如何从文件中插入数据并存储到数据库中。

tf7tbtn2

tf7tbtn21#

看起来您使用的是MySQL或MariaDB。如果您在服务器上本地保存了文件(即正确上传),则可以执行SQL

LOAD DATA LOCAL INFILE '/path/file' INTO TABLE users;

有关详细信息,请参阅MySQL documentation
Yii2中的直接SQL是使用以下语句完成的:

Yii::$app->db->createCommand(sql, params)->execute();

那看起来就像

Yii::$app->db->createCommand('LOAD DATA LOCAL INFILE \':file\' INTO TABLE users', [':file' => path])->execute();

相关问题