2016-01-18 19 views
0

我有一個麻煩的使用參數,我想插入上傳文件到MsSQL數據庫從我的網頁上的文件上傳。我使用codeigniter作爲我的框架。使用合適的參數上傳數據到MsSQL使用codeigniter

控制器

function upload_gen048() 
{ 

$data['filedate']=$this->input->post('fiil'); 
//print_r ($data); 

$this->load->model('navi_model'); 
$query = $this->navi_model->upload_gen048($data); 

模型 功能upload_gen048($數據) {

$x = explode('.',$data['filedate']); 

//print_r ($data); 

$qString = ""; 
$qString .= '[dbo].[gen048upload] '; //STORED PROCEDURE 
$qString .= "'" .$data['fiil']."','" .$data['filedate']."'"; 
echo $qString; 

查看

<form id="upload" name="upload" action="<?php echo base_url(); ?>index.php/welcome/upload_gen048" method="POST" class="form-horizontal" enctype="multipart/form-data" onsubmit="return verify_upload()" > 

<input style="border:1px solid" type="text" onfocus="true" name="fiil" id="fiil" value=""size="30" /> 

<input type="file" name="uploadData" id="uploadData" onChange="fileSelect();" style=""/> 

這裏是我的存儲過程,它是獨立運行時,我獨立執行它,但我不能從我的網頁插入數據。

ALTER PROCEDURE [dbo].[gen048upload] 
(
     @fileDate VARCHAR(20) 

) 

AS BEGIN 

SET NOCOUNT ON 

declare @sql varchar(8000),@sourceTable varchar(500), @dynamic varchar(8000), @tablesuffix varchar(10) 
select @tablesuffix=upper(substring(datename(m,convert(datetime,@fileDate)),1,3))+convert(varchar,year(convert(datetime,@fileDate))) 
print @tablesuffix 


create table #logs(
i int identity(1,1), 
tableName varchar(50), 
status varchar(30) 
) 

set @sourceTable ='gen_048_'[email protected] 
insert into #logs(tableName,status) select @sourceTable,'CREATED' 
IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = @sourceTable) 
BEGIN 
    set @sql = ' 
    CREATE TABLE '[email protected]+' 
    (
+0

你得到什麼錯誤? – Sam

+0

消息:未定義的索引:fiil 文件名:models/navi_model.php 行號碼:57 雙方正在工作,我的網頁和我的MsSQL存儲過程中,但我認爲我的問題是我無法連接到彼此,因爲我的參數在我的模型中。 –

+0

我看不到你填寫'$ data'哈希的地方。你只需在其上設置'filedate'索引,而不是錯誤提到的'fiil'索引。您應該檢查'$ data'是否包含您在開始索引之前期待的內容。 – Sam

回答

1
function upload_gen048() 
{ 
    // Here you make a array, with a key 'filedate' 
    $data['filedate']=$this->input->post('fiil'); 
    //print_r ($data); 

    $this->load->model('navi_model'); 
    $query = $this->navi_model->upload_gen048($data); 

function upload_gen048($data) { 
    $x = explode('.',$data['filedate']); 
    //print_r ($data); 
    $qString = ""; 
    $qString .= '[dbo].[gen048upload] '; //STORED PROCEDURE 

// Here you try to get array key 'fiil', but you haven't set that in your code. 
    $qString .= "'" .$data['fiil']."','" .$data['filedate']."'"; 
    echo $qString; 

刪除$數據[ 'fiil'],你的代碼應該工作。 另外var_dump($ data);要準確查看數組中的內容,您將會看到$ data ['fiil']不存在。

相關問題