2013-10-05 61 views
0

最近我正在爲joomla 3.1後端製作一個上傳組件。 基於How to Save Uploaded File's Name on Database 我成功地將文件移動到硬盤驅動器, 但是我不能讓更新查詢根據上面張貼的帖子工作。Joomla 3.1數據庫更新查詢不起作用

我沒有得到任何SQL錯誤和保存工作,但以某種方式忽略數據庫部分。

我真的很希望我錯過了一些明顯的東西。 (順便說一句,我不知道查詢的Joomla方式非常好)

phpmyadmin下面的查詢工作:

UPDATE hmdq7_mysites_projects 
SET project_file = 'test' 
WHERE id IN (3); 

我曾嘗試以下查詢:

$id = JRequest::getVar('id'); 
$db =& JFactory::getDBO(); 
$sql = "UPDATE hmdq7_mysites_projects 
     SET project_file =' " . $filename. "' 
     WHERE id IN (".$id.");"; 
$db->setQuery($sql); 
$db->query(); 

$colum = "project_file"; 
$id = JRequest::getVar('id'); 
$data = JRequest::getVar('jform', null, 'post', 'array'); 
$data['project_file'] = strtolower($file['name']['project_file']); 

$db =& JFactory::getDBO(); 
$query = $db->getQuery(true); 
$query->update('#__mysites_projects'); 
$query->set($column.' = '.$db->quote($data)); 
$query->where('id'.'='.$db->quote($id));    
$db->setQuery($query); 
$db->query(); 

這裏是當前的代碼:

class MysitesControllerProject extends JControllerForm 
{ 

    function __construct() { 
     $this->view_list = 'projects'; 
     parent::__construct(); 
    } 

    function save(){ 
     // ---------------------------- Uploading the file --------------------- 
     // Neccesary libraries and variables 
     jimport('joomla.filesystem.folder'); 
     jimport('joomla.filesystem.file'); 

     $path= JPATH_SITE . DS . "images"; 
     // Create the gonewsleter folder if not exists in images folder 
     if (!JFolder::exists(JPATH_SITE . "/images" )) { 
      JFactory::getApplication()->enqueueMessage($path , 'blue'); 
     } 

     // Get the file data array from the request. 
     $file = JRequest::getVar('jform', null, 'files', 'array'); 

     // Make the file name safe. 
     $filename = JFile::makeSafe($file['name']['project_file']); 

     // Move the uploaded file into a permanent location. 
     if ($filename != '') { 
      // Make sure that the full file path is safe. 
      $filepath = JPath::clean(JPATH_SITE . "/images/" . $filename); 

      // Move the uploaded file. 
      JFile::upload($file['tmp_name']['project_file'], $filepath); 

      $colum = "project_file"; 
      $id = JRequest::getVar('id'); 
      $data = JRequest::getVar('jform', null, 'post', 'array'); 
      $data['project_file'] = strtolower($file['name']['project_file']); 

      $db =& JFactory::getDBO(); 
      $query = $db->getQuery(true); 
      $query->update('#__mysites_projects'); 
      $query->set($column.' = '.$db->quote($data)); 
      $query->where('id'.'='.$db->quote($id));    
      $db->setQuery($query); 
      $db->query(); 


     } 

     // ---------------------------- File Upload Ends ------------------------ 

     JRequest::setVar('jform', $data); 

     return parent::save(); 
    } 
+0

解決:審查後http://stackoverflow.com/questions/14531603/update-record-in-database-using-jdatabase?rq=1。我編寫了一些固定的測試值。原來查詢是正確的,但查詢中的$ data varible沒有數據。 $ data ['project_file'] = strtolower($ file ['name'] ['project_file']);從第一部分刪除數組和可變工作。 – user2617187

回答