Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, Ed, biapar, Willr, Ingo, swaiba

Weird error after imageupload


Go to End


4 Posts   2266 Views

Avatar
Bereusei

Community Member, 96 Posts

24 December 2011 at 10:02pm

Edited: 24/12/2011 10:04pm

Hallo guys,

I´ve using the ImageDataObjectManager (for Silverstripe 2.4.6.) to upload images and it doesn´t work fine.
For this I use the latest version of Uploadify.
If I click on "Upload files", select an image and upload the image, the file is shown in the upload-window,
but disappear after upload is finish and Silverstripe said "no files found". So I don´t get the window, where I can select and import the image.
Anyway, the image was wel uploaded in the assets and I can select it with the option "Choose existing".
After I´ve uploaded the image I get an error (via email):

Error: Couldn't run query: SELECT "File"."ClassName", "File"."Created", "File"."LastEdited", "File"."Name", "File"."Title", "File"."Filename", "File"."Content", "File"."Sort", "File"."ShowInSearch", "File"."SortOrder", "File"."ParentID", "File"."OwnerID", "File"."ID", CASE WHEN "File"."ClassName" IS NOT NULL THEN "File"."ClassName" ELSE 'File' END AS "RecordClassName" FROM "File" WHERE ("File"."ID" IN (\n323)) ORDER BY "SortOrder" ASC You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\n323)) ORDER BY "SortOrder" ASC' at line 1
At line 525 in /var/www/web211/html/sapphire/core/model/MySQLDatabase.php

user_error(Couldn't run query: SELECT "File"."ClassName", "File"."Created", "File"."LastEdited", "File"."Name", "File"."Title", "File"."Filename", "File"."Content", "File"."Sort", "File"."ShowInSearch", "File"."SortOrder", "File"."ParentID", "File"."OwnerID", "File"."ID", CASE WHEN "File"."ClassName" IS NOT NULL THEN "File"."ClassName" ELSE 'File' END AS "RecordClassName" FROM "File" WHERE ("File"."ID" IN (\n323)) ORDER BY "SortOrder" ASC You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\n323)) ORDER BY "SortOrder" ASC' at line 1,256) line 525 of MySQLDatabase.php MySQLDatabase->databaseError(Couldn't run query: SELECT "File"."ClassName", "File"."Created", "File"."LastEdited", "File"."Name", "File"."Title", "File"."Filename", "File"."Content", "File"."Sort", "File"."ShowInSearch", "File"."SortOrder", "File"."ParentID", "File"."OwnerID", "File"."ID", CASE WHEN "File"."ClassName" IS NOT NULL THEN "File"."ClassName" ELSE 'File' END AS "RecordClassName" FROM "File" WHERE ("File"."ID" IN (\n323)) ORDER BY "SortOrder" ASC | You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\n323)) ORDER BY "SortOrder" ASC' at line 1,256) line 123 of MySQLDatabase.php MySQLDatabase->query(SELECT "File"."ClassName", "File"."Created", "File"."LastEdited", "File"."Name", "File"."Title", "File"."Filename", "File"."Content", "File"."Sort", "File"."ShowInSearch", "File"."SortOrder", "File"."ParentID", "File"."OwnerID", "File"."ID", CASE WHEN "File"."ClassName" IS NOT NULL THEN "File"."ClassName" ELSE 'File' END AS "RecordClassName" FROM "File" WHERE ("File"."ID" IN (\n323)) ORDER BY "SortOrder" ASC,256) line 129 of DB.php DB::query(SELECT "File"."ClassName", "File"."Created", "File"."LastEdited", "File"."Name", "File"."Title", "File"."Filename", "File"."Content", "File"."Sort", "File"."ShowInSearch", "File"."SortOrder", "File"."ParentID", "File"."OwnerID", "File"."ID", CASE WHEN "File"."ClassName" IS NOT NULL THEN "File"."ClassName" ELSE 'File' END AS "RecordClassName" FROM "File" WHERE ("File"."ID" IN (\n323)) ORDER BY "SortOrder" ASC,256) line 404 of SQLQuery.php SQLQuery->execute() line 761 of File.php File->instance_get("File"."ID" IN (\n323),,,,DataObjectSet) line 2714 of DataObject.php DataObject::get(File,"File"."ID" IN (\n323)) line 161 of MultipleFileUploadField.php MultipleFileUploadField->Files() line 369 of ViewableData.php ViewableData->obj(Files,,,1,) line 411 of ViewableData.php ViewableData->cachedCall(Files,) line 424 of ViewableData.php ViewableData->hasValue(Files) line 12 of .cache.uploadify.templates.Includes.AttachedFiles.ss include(/var/www/web211/html/silverstripe-cache/.cache.uploadify.templates.Includes.AttachedFiles.ss) line 429 of SSViewer.php SSViewer->process(MultipleImageUploadField) line 342 of ViewableData.php ViewableData->renderWith(AttachedFiles) line 107 of MultipleFileUploadField.php MultipleFileUploadField->refresh(SS_HTTPRequest) line 143 of RequestHandler.php RequestHandler->handleRequest(SS_HTTPRequest) line 161 of RequestHandler.php RequestHandler->handleRequest(SS_HTTPRequest) line 161 of RequestHandler.php RequestHandler->handleRequest(SS_HTTPRequest) line 161 of RequestHandler.php RequestHandler->handleRequest(SS_HTTPRequest) line 161 of RequestHandler.php RequestHandler->handleRequest(SS_HTTPRequest) line 147 of Controller.php Controller->handleRequest(SS_HTTPRequest) line 282 of Director.php Director::handleRequest(SS_HTTPRequest,Session) line 125 of Director.php Director::direct(/admin/EditForm/field/Images/UploadifyForm/field/UploadedFiles/refresh) line 127 of main.php

In my opinion there is anywhere an syntax error nearby "sortorder".

Here is my code:

<?php
// /mysite/code/GalleryPage.php
class GalleryPage extends Page
{
static $has_many = array (
'Images' => 'ImageResource'
);
public static $db = array(
);
public static $has_one = array(
);

public function getCMSFields()
{
$f = parent::getCMSFields();
$manager = new ImageDataObjectManager(
$this, // Controller
'Images', // Source name
'ImageResource', // Source class
'Attachment', // File name on DataObject
array(
'Title' => 'Title',
'Caption' => 'Caption'
)
);
$f->addFieldToTab("Root.Content.Main",$manager);
$f->removeFieldFromTab("Root.Content.Main","Content");

return $f;
}
}

class GalleryPage_Controller extends Page_Controller {
function init() {
parent::init();

//Include fancybox Code
Requirements::javascript('themes/tsg-nordhorn/js/jquery.js');
Requirements::javascript('themes/tsg-nordhorn/fancybox/jquery.mousewheel-3.0.4.pack.js');
Requirements::javascript('themes/tsg-nordhorn/fancybox/jquery.fancybox-1.3.4.pack.js');
Requirements::javascript('themes/tsg-nordhorn/js/fancybox.js');
Requirements::javascript('themes/tsg-nordhorn/js/gallery.js');
Requirements::insertHeadTags("<style type='text/css'>@import url(themes/" . SSViewer::current_theme() . "/fancybox/jquery.fancybox-1.3.4.css);</style>");/*fancybox*/
}
}

<?php

// /mysite/code/ImageResource.php
class ImageResource extends DataObject
{
static $db = array (
'Title' => 'Text',
'Caption' => 'Text'
);

static $has_one = array (
'Attachment' => 'Image', //Needs to be an image
'GalleryPage' => 'GalleryPage',
'PressePage' => 'PressePage'
);

public function getCMSFields_forPopup()
{
return new FieldSet(
new TextField('Title'),
new TextareaField('Caption'),
new FileIFrameField('Attachment')
);
}
}
?>

Does anyone (UncleCheese maybe) see an mistake? I can´t figure it out.
I am very thankful, if somebody could help me. It really freaks me out.

Thx,
Bereusei

Avatar
UncleCheese

Forum Moderator, 4102 Posts

27 December 2011 at 4:16am

Looks like you have whitespace in one of your php files somewhere. Check your _config.php, and all your models and controllers. Make sure you're not using any closing php tags. ?>

---------------
Silverstripe tips, tutorials, screencasts, and more. http://www.leftandmain.com

Avatar
Bereusei

Community Member, 96 Posts

28 December 2011 at 1:36am

Thanks, UncleCheese. This was the mistake. Now everything works fine!

Avatar
johnmblack

Community Member, 62 Posts

5 January 2012 at 5:04am

FWIW, I got this same error after migrating a site that was already upgraded to 2.4.6 but forgetting to re-run the dev/build. The File.ShowInSearch property was one of the things added in 2.4.6 and in my case was the first thing the code hit that didn't match up to the current state of the DB.