0
votes

I'm running into this error with my database saying that I have some issue with an array:

Database Error

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Array' in 'field list'

SQL Query: UPDATE `mongexc_cake214`.`configurations` SET `id` = 1, `username` = 'bill clinton', `profession` = 'president', `description` = 'Ob Jones-D is a Thai Massage and Electronic Acupuncture Specialist. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quam, repellat optio officiis neque ea repudiandae sint corrupti illo? Maiores adipisci mollitia quae perferendis numquam minima deserunt ratione placeat rem. Numquam?', `tel_mobile` = '000-000-0000', `address` = '000 new york of africa V99 999', `userphoto` = Array WHERE `mongexc_cake214`.`configurations`.`id` = '1'

Notice: If you want to customize this error message, create app/View/Errors/pdo_error.ctp

This is part of my edit.php file with the field userphoto for image file upload

<?php echo $this->Form->create('Configuration', array('type' => 'file')); ?>
<fieldset>
<legend><?php echo __('Edit Configuration'); ?></legend>
<?php
echo $this->Form->input('id');
echo $this->Form->input('username');
echo $this->Form->input('profession');
echo $this->Form->input('description', array('type' => 'textarea','label' => 'Content of this Article', 'rows' => '10', 'cols' => '120'));
echo $this->Form->input('userphoto', array('type' => 'file'));
echo $this->Form->input('tel_mobile');
echo $this->Form->input('address');
?>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
2
How are you handling the incoming userphoto file array information in your related controller?summea
Thks summea! this is my gist link. I was on 'edit.ctp'Papouche Guinslyzinho

2 Answers

0
votes

userphoto is a file field, it will contain data similar as:

$this->request->data['Configuration']['userphoto'] = array(
    'error' => …,
    'name' => …,
    …
)

Which means it is an array.

But in your code, you are directly inserting an array to your database. You need to handle the file upload explicitly.

Check out Best practice to upload files in CakePHP

0
votes
$imageData = exif_imagetype($this->request->data['Foo']['image']['tmp_name']);  
                image_type_to_mime_type($imageData);  
                    switch ($imageData) :  
                    case '2':  
                        $type = '.jpg';  
                        break;  
                    case '3':  
                        $type = '.png';   
                        break;  
                    default:  
                        $type = 'invalid';  
                        break;  
                    endswitch;  
$uniq = mt_rand();  
move_uploaded_file($this->request->data['Foo']['image']['tmp_name'],'path/to/dir');  
$this->request->data['Foo']['image'] = '/path/to/dir/'.$uniq.$type;