所以我尝试在我的项目(字典)中进行自动完成,并且如果使用 #Tinker 测试 SQL 命令,SQL 可以正常工作。
# php artisan tinker
Psy Shell v0.9.9 (PHP 7.1.19 — cli)
>>> use App\WordsList;
>>> WordsList::where('Translation', 'english')->first();
=> App\WordsList {#2962
ID: 4,
Word: "اَلْإِنْكِلِيزِيَّة",
SimpleWords: "الإنكليزية",
Translation: "english",
Views: null,
}
>>>
但是如果在自动完成 Controller 中这样做:
public function search(Request $request)
{
$search = $request->get('term');
$result = WordsList::where('Translation', 'LIKE', '%'. $search. '%')->first();
return response()->json($result);
}
网页文件(路由)
Route::get('autocomplete', 'AutoCompleteController@search');
如果发现这个问题:
## (URL) http://127.0.0.1:8000/autocomplete/?term=english
SQLSTATE[HY000] [2002] Connection refused (SQL: select * from `WordsList` where `Translation` LIKE %english% limit 1)
最佳答案
我曾多次遇到过这种情况。通常,查看 .env
文件会很有帮助。
查看DB_HOST
键。如果当前为 127.0.0.1
,请尝试将该值更改为 localhost
关于php - Laravel SQLSTATE[HY000] [2002] 当命令在 "Controller"时连接被拒绝,但 Tinker 中的单词正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56090742/