0

最近、私は 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();
    } 
4

1 に答える 1