因此,我试图在我的项目(词典)中进行自动完成,并且如果使用#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,
}
>>>
但是如果在AutoComplete Controller中像这样进行设置:
public function search(Request $request)
{
$search = $request->get('term');
$result = WordsList::where('Translation', 'LIKE', '%'. $search. '%')->first();
return response()->json($result);
}
Web文件(路由)
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)
答案 0 :(得分:0)
我有几次发生这种情况。通常,查看您的.env
文件很有帮助。
查看DB_HOST
键。如果当前为127.0.0.1
,请尝试将值更改为localhost
答案 1 :(得分:0)
您的数据库连接似乎有一个简单的问题。我不知道您的环境(无家可归的宅基地/虚拟mashine /等等)。
首先,您应该检查数据库配置。看看这些文章:
您的数据库主机应设置为 localhost ,而端口应为 3306 。
尝试使用php artisan config:cache
清除并再次缓存您的配置。
至少您可以尝试调试代码并检查DB::connection()
/ DB::connection()->getDatabaseName()