2010-03-15 60 views
0

我有上傳Excel文件一樣沒有插入到數據庫中的PHP腳本

<form enctype="multipart/form-data" action="http://localhost/joomla/Joomla_1.5.7/index.php?option=com_jumi&fileid=7" method="POST"> 
    Please choose a file: <input name="file" type="file" id="file" /><br /> 
    <input type="submit" value="Upload" /> 
    </form> 

,並在文件的形式http://localhost/joomla/Joomla_1.5.7/index.php?option=com_jumi&fileid=7

i have retrived the uploaded file contents by 



    <?php echo "Name". $_FILES['file']['name'] . "<br />"; 

    echo "Type: " . $_FILES["file"]["type"] . "<br />"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
    echo "Stored in: " . $_FILES["file"]["tmp_name"] . "<br />"; 
    $string = file_get_contents($_FILES["file"]["tmp_name"]); 

     foreach (explode("\n", $string) as $userString) 

    { 

     $userString = trim($userString); 
        echo $userString;$array = explode(';', $userString); 



      $userdata = array 
     ('cf_id'=>trim($array[0]), 
     'text_0'=>trim($array[1]), 
     'text_1'=>trim($array[2]), 
     'text_2'=>trim($array[3]), 
     'text_3'=>trim($array[4]), 
     'text_6'=>trim($array[5]), 
     'text_7'=>trim($array[6]), 
    'text_9'=>trim($array[7]), 
     'text_12'=>trim($array[8])); 



      global $db; $db=& JFactory::getDBO(); 


      $query = 'INSERT INTO #__chronoforms_UploadAuthor VALUES ("'.$userdata['cf_id'].'","'.$userdata['text_0'].'","'.$userdata['text_1'].'","'.$userdata['text_2'].'","'.$userdata['text_3'].'","'.$userdata['text_6'].'","'.$userdata['text_7'].'","'.$userdata['text_9'].'")'; 

      $db->Execute($query); 

      echo "<br>"; 

      } 

我試圖內容插入到表Joomla數據庫中的#__chronoforms_UploadAuthor。它doent顯示任何錯誤,但它不插入到數據庫..

請幫助我.. Y上的內容不被插入到數據庫......而如何使其插入到數據庫..

編輯:

我已經迴盪示爲 INSERT INTO jos_chronoforms_UploadAuthor VALUES( 「1」, 「」 概念紙-WSN_02.pdf 「」, 「」 無線SenseScape,無線傳感器網絡 「」 查詢和它的, 「」TCS創新實驗室,班加羅爾「,」「內部」「,」Wi-SenseScape「」,「Harish Reddy,Vishnu,Deepika,T.Chakravarty和Balamuralidhar」「,」「2008」「,」「 「」)..因爲有2個雙引號,所以沒有插入數據庫..請告訴我如何解決這個..

以便查詢應該像 INSERT INTO jos_chronoforms_UploadAuthor VALUES( 「1」, 「概念紙-WSN_02.pdf」, 「無線SenseScape,無線傳感器網絡」,「TCS創新實驗室班加羅爾 「」, 「內部」, 「 」「 無線SenseScap」, 「哈里什·雷迪,毗溼奴,迪皮卡,T.Chakravarty和Balamuralidhar」, 「2008」, 「」, 「」)

回答

2

首先嚐試找出sql查詢:

echo $query; 

現在複製該查詢並在mysql客戶端中執行,如phpmyadmin或sqlyog。如果插入記錄,則代碼中的其他位置出現錯誤,但如果發現任何錯誤,則應嘗試在查詢中解決該錯誤。

編輯:

您需要使用addslashesmysql_real_escape_string功能你的價值觀之前,你插入到你的數據庫:

$query = 'INSERT INTO #__chronoforms_UploadAuthor VALUES ("'.addslashes($userdata['cf_id']).'","'.addslashes($userdata['text_0'])............and so on 
+0

我已經迴盪查詢和顯示爲 INSERT INTO jos_chronoforms_UploadAuthor VALUES (「1」,「」Conceer-WSN_02.pdf「」,「」Wi-SenseScape,無線傳感器網絡「」,「Labs,Bangalore」「,」內部「」,「」Wi-SenseScape「」, 「Harish,Vishnu,Deepika,T.Chakravarty和Balamuralidhar」「,」「2008」「,」「,」「)..因爲有2個雙引號,所以我s沒有插入到數據庫中..請告訴我如何解決這個 – useranon 2010-03-15 12:28:23

+0

使用addslashes或mysql_real_escape_string函數在你想要插入的值之前。看到我更新的答案。 – Sarfraz 2010-03-15 12:36:39