Laravel Erreur générale: 2031 P>
blockQuote> On dirait que des guillemets ne sont pas ajoutés à la déclaration et il essaie d'exécuter la déclaration comme celle-ci: p> Le code ressemble à ceci: P> dB :: Sélectionnez Code> Retours
$sql = 'SELECT id FROM users where email="email@email.com"';
3 Réponses :
Je vous recommande de lire les Sélectionnez Docs de Laravel Query Builder.
Le constructeur de requêtes fournit une API complète pour faciliter la tâche et plus sûre. Votre requête ressemblerait à: p> edit fort> p> Le problème est que vous essayez de passer un paramètre nommé, Mais à l'intérieur de la chaîne, vous ne l'avez pas nommé. P> Comme l'exemple de DOC montre: p> Votre requête doit ressembler à: P> < Pré> xxx pré> p>
Même plus simple, cela peut être coupé jusqu'à où ("email", $ email) code>. L'opérateur n'est nécessaire que si vous n'utilisez pas = code>.
Je pense que cela clarifie les problèmes. Basé aussi sur certains autres conseils que j'essaye d'utiliser Eloquent dans la mesure du possible. Mais DB SELECTS peut être aussi parfois très utile. Merci!
@MTHRSJ a correctement identifié une meilleure solution dans votre particulier de requête em>. Votre problème sous-jacent avec le Ceci devrait fonctionner: P> dB :: Select code> appel est que vous utilisez non Nommé d'espaces réservés ? code> en le passant nommé de données nommées. p> $sql = 'SELECT id FROM users where email=:email';
$results = DB::select($sql, ['email' => $email]);
Si vous avez la configuration des modèles, vous pouvez également appeler le DB à l'aide de votre modèle utilisateur:
$user = User::select('id')->where('email', $email)->get();
Eloquant et le DB Code> Façade Utilisez PDO, mais ceci est un bon point - en général, utilisez l'éloquent dans la mesure du possible.
C'est utile. Merci.