2015-04-21 1 views
0

Lorsque j'utilise la classe de requête de base de données Kohana avec déclaration préparée, je reçois une erreur: ErrorException [Erreur fatale]: Impossible d'utiliser l'objet de type Database_Query_Builder_Select sous forme de tableaukohana d'erreur de déclaration préparée

$query = DB::select('id,lat,lng')->from('projects')->where('id', '=', ':id'); 
$query->param(':id', $id); 
$query->execute(); 
return $query[0]; 

Avec enchaînant fonctionne très bien:

$query = DB::select('id,lat,lng')->from('projects')->where('id', '=', ':id')->param(':id', $id)->execute(); 
return $query[0]; 

Qu'est-ce qui me manque?

Répondre

1

Vous ne faites pas la même chose. Dans le deuxième code, vous affectez la valeur de retour et accédez à cela, pas la requête. Donc, quelque chose comme ça devrait fonctionner

$query = DB::select('id,lat,lng')->from('projects')->where('id', '=', ':id'); 
$query->param(':id', $id); 
$result = $query->execute(); 
return $result[0]; 
+0

cela a du sens, merci – toms

+0

De rien. Si vous utilisez une version récente de PHP (ne savez pas laquelle, c'est sûr, pensez à 5.3), vous pouvez aussi faire quelque chose comme 'return $ query-> execute() [0]' – kero