laravel查询时判断是否存在数据
// 1.使用内置方法 isEmpty()
$userItems = User::where('sex', '=', '1')->get();
if ($userItems->isEmpty()) {
}
// 2.使用内置方法 count() 检查有没有记录
if (User::where('email', '=', $email)->count() > 0) {
// 有记录
}
// 3.使用内置方法 exists() 建议使用该方法
$userItems = User::where('sex', '=', '1')->get();
if ($userItems->exists()) {
// 有记录
}
// 4.使用内置方法 first()
$user = User::where('email', '=', $email)->first();
if ($user === null) {
// 没记录
}
数据库查询构造器:
直接使用is_null()或empty()判段结果集是否为空。
$users = DB::table('users')->where('id', $id)->get();
// 方法1
if($users){
// 有记录
}
// 方法2
if(is_null($users)){
// 没记录
}
// 方法3
if(empty($users)){
// 没记录
}
MySQL server has gone away的几种解决办法
问题描述:laravel子进程插入数据时MySQL server has gone away:
private function testSave($ktp_id) {
$pid = pcntl_fork();
if ($pid < 0) {
return response()->json([
'message' => 'create task failed.'
], 400);
}
if ($pid == 0) {
var_dump($pid);
$toc_res = KbtreeImporter::where('id', $ktp_id)->first();
$toc_res->toc_id = $toc_res->id;
$toc_res->type_id = $toc_res->publication_type_id;
$filename = Util::makeFilename('html', $toc_res->publication_type_id . '-');
$updateData['blob_id'] = $filename;
$content = $toc_res->old_data;
Document::addMetaInfo($content, $toc_res);
$save_document_res = KbtreeImporter::saveDocument('put', $filename, $content, $toc_res);
if ($save_document_res['ok']) {
$updateData['edit_lock'] = 0;
$updateData['edit_lock_uid'] = 0;
$updateData['edit_time'] = 0;
KbtreeImporter::where('id', $ktp_id)->update($updateData);
}
}
}
问题截图: