Database Error
Error:
SQLSTATE[42000] [1064] 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 'AND `Track`.`InstrumentID` = `Instrument`.`Instrument_id`) INNER JOIN `musicfind' at line 1
SQL Query:
SELECT `Track`.`TrackID`, `Track`.`Duration`, `Track`.`FileLocation`, `Track`.`TrackTitle`, `Track`.`TempoID`, `cds`.`CDDesc`, (CASE WHEN Track.TempoID=1 THEN "Slow" WHEN Track.TempoID=2 THEN "N/R" WHEN Track.TempoID=6 THEN "Free" WHEN Track.TempoID=3 THEN "Unclassified" WHEN Track.TempoID=4 THEN "Mixed" WHEN Track.TempoID=5 THEN "Medium" ELSE "Fast" END) "Track.TempoID", `Instrument`.`instrument_text`, `Keywords`.`keyword_name` FROM `musicfinder`.`tracks` AS `Track` INNER JOIN `musicfinder`.`track_sub_genres` AS `genres` ON (`Track`.`TrackID` = `genres`.`trackID`) INNER JOIN `musicfinder`.`cds` AS `cds` ON (`Track`.`CDID` = `cds`.`CDID`) INNER JOIN `musicfinder`.`instruments` AS `Instrument` ON (`Instrument`.`language_id` = AND `Track`.`InstrumentID` = `Instrument`.`Instrument_id`) INNER JOIN `musicfinder`.`track_keywords` AS `TKeywords` ON (`Track`.`TrackID` = `TKeywords`.`trackID`) INNER JOIN `musicfinder`.`keywords` AS `Keywords` ON (`Keywords`.`language_id` = AND `Keywords`.`keyword_id` = `TKeywords`.`keywordID`) WHERE `genres`.`subgenreID` =314 AND `cds`.`LibraryID` = 25 GROUP BY `Track`.`TrackID` ORDER BY `Track`.`TrackTitle` ASC
Notice:
If you want to customize this error message, create app/View/Errors/pdo_error.ctp
Stack Trace
- CORE/Cake/Model/Datasource/DboSource.php line 458 → PDOStatement->execute(array)
try {
$query = $this->_connection->prepare($sql, $prepareOptions);
$query->setFetchMode(PDO::FETCH_LAZY);
if (!$query->execute($params)) {
$this->_results = $query;
- CORE/Cake/Model/Datasource/DboSource.php line 424 → DboSource->_execute(string, array)
$options += array('log' => $this->fullDebug);
$t = microtime(true);
$this->_result = $this->_execute($sql, $params);
'SELECT `Track`.`TrackID`, `Track`.`Duration`, `Track`.`FileLocation`, `Track`.`TrackTitle`, `Track`.`TempoID`, `cds`.`CDDesc`, (CASE WHEN Track.TempoID=1 THEN "Slow" WHEN Track.TempoID=2 THEN "N/R" WHEN Track.TempoID=6 THEN "Free" WHEN Track.TempoID=3 THEN "Unclassified" WHEN Track.TempoID=4 THEN "Mixed" WHEN Track.TempoID=5 THEN "Medium" ELSE "Fast" END) "Track.TempoID", `Instrument`.`instrument_text`, `Keywords`.`keyword_name` FROM `musicfinder`.`tracks` AS `Track` INNER JOIN `musicfinder`.`track_sub_genres` AS `genres` ON (`Track`.`TrackID` = `genres`.`trackID`) INNER JOIN `musicfinder`.`cds` AS `cds` ON (`Track`.`CDID` = `cds`.`CDID`) INNER JOIN `musicfinder`.`instruments` AS `Instrument` ON (`Instrument`.`language_id` = AND `Track`.`InstrumentID` = `Instrument`.`Instrument_id`) INNER JOIN `musicfinder`.`track_keywords` AS `TKeywords` ON (`Track`.`TrackID` = `TKeywords`.`trackID`) INNER JOIN `musicfinder`.`keywords` AS `Keywords` ON (`Keywords`.`language_id` = AND `Keywords`.`keyword_id` = `TKeywords`.`keywordID`) WHERE `genres`.`subgenreID` =314 AND `cds`.`LibraryID` = 25 GROUP BY `Track`.`TrackID` ORDER BY `Track`.`TrackTitle` ASC'
array()
- CORE/Cake/Model/Datasource/DboSource.php line 666 → DboSource->execute(string, array, array)
if ($cache && ($cached = $this->getQueryCache($sql, $params)) !== false) {
return $cached;
}
$result = $this->execute($sql, array(), $params);
if ($result) {
'SELECT `Track`.`TrackID`, `Track`.`Duration`, `Track`.`FileLocation`, `Track`.`TrackTitle`, `Track`.`TempoID`, `cds`.`CDDesc`, (CASE WHEN Track.TempoID=1 THEN "Slow" WHEN Track.TempoID=2 THEN "N/R" WHEN Track.TempoID=6 THEN "Free" WHEN Track.TempoID=3 THEN "Unclassified" WHEN Track.TempoID=4 THEN "Mixed" WHEN Track.TempoID=5 THEN "Medium" ELSE "Fast" END) "Track.TempoID", `Instrument`.`instrument_text`, `Keywords`.`keyword_name` FROM `musicfinder`.`tracks` AS `Track` INNER JOIN `musicfinder`.`track_sub_genres` AS `genres` ON (`Track`.`TrackID` = `genres`.`trackID`) INNER JOIN `musicfinder`.`cds` AS `cds` ON (`Track`.`CDID` = `cds`.`CDID`) INNER JOIN `musicfinder`.`instruments` AS `Instrument` ON (`Instrument`.`language_id` = AND `Track`.`InstrumentID` = `Instrument`.`Instrument_id`) INNER JOIN `musicfinder`.`track_keywords` AS `TKeywords` ON (`Track`.`TrackID` = `TKeywords`.`trackID`) INNER JOIN `musicfinder`.`keywords` AS `Keywords` ON (`Keywords`.`language_id` = AND `Keywords`.`keyword_id` = `TKeywords`.`keywordID`) WHERE `genres`.`subgenreID` =314 AND `cds`.`LibraryID` = 25 GROUP BY `Track`.`TrackID` ORDER BY `Track`.`TrackTitle` ASC'
array(
'log' => true
)
array()
- CORE/Cake/Model/Datasource/DboSource.php line 1106 → DboSource->fetchAll(string, array)
// Build SQL statement with the primary model, plus hasOne and belongsTo associations
$query = $this->buildAssociationQuery($Model, $queryData);
$resultSet = $this->fetchAll($query, $Model->cacheQueries);
unset($query);
'SELECT `Track`.`TrackID`, `Track`.`Duration`, `Track`.`FileLocation`, `Track`.`TrackTitle`, `Track`.`TempoID`, `cds`.`CDDesc`, (CASE WHEN Track.TempoID=1 THEN "Slow" WHEN Track.TempoID=2 THEN "N/R" WHEN Track.TempoID=6 THEN "Free" WHEN Track.TempoID=3 THEN "Unclassified" WHEN Track.TempoID=4 THEN "Mixed" WHEN Track.TempoID=5 THEN "Medium" ELSE "Fast" END) "Track.TempoID", `Instrument`.`instrument_text`, `Keywords`.`keyword_name` FROM `musicfinder`.`tracks` AS `Track` INNER JOIN `musicfinder`.`track_sub_genres` AS `genres` ON (`Track`.`TrackID` = `genres`.`trackID`) INNER JOIN `musicfinder`.`cds` AS `cds` ON (`Track`.`CDID` = `cds`.`CDID`) INNER JOIN `musicfinder`.`instruments` AS `Instrument` ON (`Instrument`.`language_id` = AND `Track`.`InstrumentID` = `Instrument`.`Instrument_id`) INNER JOIN `musicfinder`.`track_keywords` AS `TKeywords` ON (`Track`.`TrackID` = `TKeywords`.`trackID`) INNER JOIN `musicfinder`.`keywords` AS `Keywords` ON (`Keywords`.`language_id` = AND `Keywords`.`keyword_id` = `TKeywords`.`keywordID`) WHERE `genres`.`subgenreID` =314 AND `cds`.`LibraryID` = 25 GROUP BY `Track`.`TrackID` ORDER BY `Track`.`TrackTitle` ASC'
array()
- CORE/Cake/Model/Model.php line 2947 → DboSource->read(Track, array)
* @return array
*/
protected function _readDataSource($type, $query) {
$results = $this->getDataSource()->read($this, $query);
$this->resetAssociations();
object(Track) {
name => 'track'
primaryKey => 'TrackID'
validate => array(
[maximum depth reached]
)
useDbConfig => 'default'
useTable => 'tracks'
id => false
data => array([maximum depth reached])
schemaName => 'musicfinder'
table => 'tracks'
validationErrors => array([maximum depth reached])
validationDomain => null
tablePrefix => ''
plugin => null
alias => 'Track'
tableToModel => array(
[maximum depth reached]
)
cacheQueries => false
belongsTo => array([maximum depth reached])
hasOne => array([maximum depth reached])
hasMany => array([maximum depth reached])
hasAndBelongsToMany => array([maximum depth reached])
actsAs => null
Behaviors => object(BehaviorCollection) {}
whitelist => array([maximum depth reached])
cacheSources => true
findQueryType => 'all'
recursive => (int) 1
order => null
virtualFields => array([maximum depth reached])
__backAssociation => array([maximum depth reached])
__backInnerAssociation => array([maximum depth reached])
__backOriginalAssociation => array([maximum depth reached])
__backContainableAssociation => array([maximum depth reached])
__safeUpdateMode => false
findMethods => array(
[maximum depth reached]
)
[protected] _schema => null
[protected] _associationKeys => array(
[maximum depth reached]
)
[protected] _associations => array(
[maximum depth reached]
)
[protected] _insertID => null
[protected] _sourceConfigured => true
[protected] _eventManager => object(CakeEventManager) {}
[protected] _validator => null
}
array(
'conditions' => array(
(int) 0 => 'genres.subgenreID =314',
(int) 1 => 'cds.LibraryID = 25'
),
'fields' => array(
(int) 0 => '`Track`.`TrackID`',
(int) 1 => '`Track`.`Duration`',
(int) 2 => '`Track`.`FileLocation`',
(int) 3 => '`Track`.`TrackTitle`',
(int) 4 => '`Track`.`TempoID`',
(int) 5 => '`cds`.`CDDesc`',
(int) 6 => '(CASE WHEN Track.TempoID=1 THEN "Slow" WHEN Track.TempoID=2 THEN "N/R" WHEN Track.TempoID=6 THEN "Free" WHEN Track.TempoID=3 THEN "Unclassified" WHEN Track.TempoID=4 THEN "Mixed" WHEN Track.TempoID=5 THEN "Medium" ELSE "Fast" END) "Track.TempoID"',
(int) 7 => '`Instrument`.`instrument_text`',
(int) 8 => '`Keywords`.`keyword_name`'
),
'joins' => array(
(int) 0 => array(
[maximum depth reached]
),
(int) 1 => array(
[maximum depth reached]
),
(int) 2 => array(
[maximum depth reached]
),
(int) 3 => array(
[maximum depth reached]
),
(int) 4 => array(
[maximum depth reached]
)
),
'limit' => null,
'offset' => null,
'order' => array(
(int) 0 => array(
[maximum depth reached]
)
),
'page' => (int) 1,
'group' => array(
(int) 0 => 'Track.TrackID'
),
'callbacks' => true
)
- CORE/Cake/Model/Model.php line 2919 → Model->_readDataSource(string, array)
return null;
}
return $this->_readDataSource($type, $query);
}
'all'
array(
'conditions' => array(
(int) 0 => 'genres.subgenreID =314',
(int) 1 => 'cds.LibraryID = 25'
),
'fields' => array(
(int) 0 => 'Track.TrackID',
(int) 1 => 'Track.Duration',
(int) 2 => 'Track.FileLocation',
(int) 3 => 'Track.TrackTitle',
(int) 4 => 'Track.TempoID',
(int) 5 => 'cds.CDDesc',
(int) 6 => '(CASE WHEN Track.TempoID=1 THEN "Slow" WHEN Track.TempoID=2 THEN "N/R" WHEN Track.TempoID=6 THEN "Free" WHEN Track.TempoID=3 THEN "Unclassified" WHEN Track.TempoID=4 THEN "Mixed" WHEN Track.TempoID=5 THEN "Medium" ELSE "Fast" END) "Track.TempoID"',
(int) 7 => 'Instrument.instrument_text',
(int) 8 => 'Keywords.keyword_name'
),
'joins' => array(
(int) 0 => array(
[maximum depth reached]
),
(int) 1 => array(
[maximum depth reached]
),
(int) 2 => array(
[maximum depth reached]
),
(int) 3 => array(
[maximum depth reached]
),
(int) 4 => array(
[maximum depth reached]
)
),
'limit' => null,
'offset' => null,
'order' => array(
(int) 0 => array(
[maximum depth reached]
)
),
'page' => (int) 1,
'group' => array(
(int) 0 => 'Track.TrackID'
),
'callbacks' => true
)
- APP/Controller/MusicController.php line 2391 → Model->find(string, array)
),'order'=>array(
'Track.TrackTitle ASC'
)
));
'all'
array(
'conditions' => array(
(int) 0 => 'genres.subgenreID =314',
(int) 1 => 'cds.LibraryID = 25'
),
'fields' => array(
(int) 0 => 'Track.TrackID',
(int) 1 => 'Track.Duration',
(int) 2 => 'Track.FileLocation',
(int) 3 => 'Track.TrackTitle',
(int) 4 => 'Track.TempoID',
(int) 5 => 'cds.CDDesc',
(int) 6 => '(CASE WHEN Track.TempoID=1 THEN "Slow" WHEN Track.TempoID=2 THEN "N/R" WHEN Track.TempoID=6 THEN "Free" WHEN Track.TempoID=3 THEN "Unclassified" WHEN Track.TempoID=4 THEN "Mixed" WHEN Track.TempoID=5 THEN "Medium" ELSE "Fast" END) "Track.TempoID"',
(int) 7 => 'Instrument.instrument_text',
(int) 8 => 'Keywords.keyword_name'
),
'joins' => array(
(int) 0 => array(
[maximum depth reached]
),
(int) 1 => array(
[maximum depth reached]
),
(int) 2 => array(
[maximum depth reached]
),
(int) 3 => array(
[maximum depth reached]
),
(int) 4 => array(
[maximum depth reached]
)
),
'limit' => null,
'offset' => null,
'order' => array(
(int) 0 => array(
[maximum depth reached]
)
),
'page' => (int) 1,
'group' => array(
(int) 0 => 'Track.TrackID'
),
'callbacks' => true
)
- [internal function] → MusicController->findsubstylelib(string, string)
- CORE/Cake/Controller/Controller.php line 490 → ReflectionMethod->invokeArgs(MusicController, array)
'action' => $request->params['action']
));
}
return $method->invokeArgs($this, $request->params['pass']);
object(MusicController) {
uses => array(
[maximum depth reached]
)
components => array(
[maximum depth reached]
)
name => 'Music'
helpers => array(
[maximum depth reached]
)
request => object(CakeRequest) {}
response => object(CakeResponse) {}
viewPath => 'Music'
layoutPath => null
viewVars => array(
[maximum depth reached]
)
view => 'findsubstylelib'
layout => 'front'
autoRender => true
autoLayout => true
Components => object(ComponentCollection) {}
viewClass => 'View'
View => null
ext => '.ctp'
plugin => null
cacheAction => false
passedArgs => array(
[maximum depth reached]
)
scaffold => false
methods => array(
[maximum depth reached]
)
modelClass => 'Library'
modelKey => 'music'
validationErrors => null
Session => object(SessionComponent) {}
Auth => object(AuthComponent) {}
Toolbar => object(ToolbarComponent) {}
Countries => object(Countries) {}
Library => object(Library) {}
Track => object(Track) {}
[protected] _responseClass => 'CakeResponse'
[protected] _mergeParent => 'AppController'
[protected] _eventManager => object(CakeEventManager) {}
}
array(
(int) 0 => '314',
(int) 1 => '25'
)
- CORE/Cake/Routing/Dispatcher.php line 191 → Controller->invokeAction(CakeRequest)
$response = $controller->response;
$render = true;
$result = $controller->invokeAction($request);
if ($result instanceof CakeResponse) {
object(CakeRequest) {
params => array(
[maximum depth reached]
)
data => array([maximum depth reached])
query => array(
[maximum depth reached]
)
url => 'music/findsubstylelib/314/25'
base => ''
webroot => '/'
here => '/music/findsubstylelib/314/25'
[protected] _detectors => array(
[maximum depth reached]
)
[protected] _input => ''
}
- CORE/Cake/Routing/Dispatcher.php line 165 → Dispatcher->_invoke(MusicController, CakeRequest)
));
}
$response = $this->_invoke($controller, $request);
if (isset($request->params['return'])) {
object(MusicController) {
uses => array(
[maximum depth reached]
)
components => array(
[maximum depth reached]
)
name => 'Music'
helpers => array(
[maximum depth reached]
)
request => object(CakeRequest) {}
response => object(CakeResponse) {}
viewPath => 'Music'
layoutPath => null
viewVars => array(
[maximum depth reached]
)
view => 'findsubstylelib'
layout => 'front'
autoRender => true
autoLayout => true
Components => object(ComponentCollection) {}
viewClass => 'View'
View => null
ext => '.ctp'
plugin => null
cacheAction => false
passedArgs => array(
[maximum depth reached]
)
scaffold => false
methods => array(
[maximum depth reached]
)
modelClass => 'Library'
modelKey => 'music'
validationErrors => null
Session => object(SessionComponent) {}
Auth => object(AuthComponent) {}
Toolbar => object(ToolbarComponent) {}
Countries => object(Countries) {}
Library => object(Library) {}
Track => object(Track) {}
[protected] _responseClass => 'CakeResponse'
[protected] _mergeParent => 'AppController'
[protected] _eventManager => object(CakeEventManager) {}
}
object(CakeRequest) {
params => array(
[maximum depth reached]
)
data => array([maximum depth reached])
query => array(
[maximum depth reached]
)
url => 'music/findsubstylelib/314/25'
base => ''
webroot => '/'
here => '/music/findsubstylelib/314/25'
[protected] _detectors => array(
[maximum depth reached]
)
[protected] _input => ''
}
- APP/webroot/index.php line 108 → Dispatcher->dispatch(CakeRequest, CakeResponse)
$Dispatcher->dispatch(
new CakeRequest(),
new CakeResponse()
);
object(CakeRequest) {
params => array(
[maximum depth reached]
)
data => array([maximum depth reached])
query => array(
[maximum depth reached]
)
url => 'music/findsubstylelib/314/25'
base => ''
webroot => '/'
here => '/music/findsubstylelib/314/25'
[protected] _detectors => array(
[maximum depth reached]
)
[protected] _input => ''
}
object(CakeResponse) {
[protected] _statusCodes => array(
[maximum depth reached]
)
[protected] _mimeTypes => array(
[maximum depth reached]
)
[protected] _protocol => 'HTTP/1.1'
[protected] _status => (int) 200
[protected] _contentType => 'text/html'
[protected] _headers => array([maximum depth reached])
[protected] _body => null
[protected] _file => null
[protected] _fileRange => null
[protected] _charset => 'UTF-8'
[protected] _cacheDirectives => array([maximum depth reached])
[protected] _cookies => array([maximum depth reached])
}