【发布时间】:2022-01-14 10:38:41
【问题描述】:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use App\Models\User;
use App\Http\Requests;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
use Redirect;
class Insertlikes extends Controller
{
public function insertlikesform()
{
return view('dashboard');
}
public function insertlike(Request $request)
{
$book_id = $request->input('book_id');
$user_id = Auth::user()->id;
$user_name = Auth::user()->name;
if(DB::select("select count(*) from likesrate where user_id='$user_id' and book_id='$book_id'")==0)
{
DB::insert('insert into likesrate (book_id,user_id,user_name) values(?,?,?)',[$book_id,$user_id,$user_name]);
}
else if(DB::select("select count(*) from likesrate where user_id='$user_id' and book_id='$book_id'")>0)
{
DB::delete("delete from likesrate where user_id='$user_id' and book_id='$book_id'");
}
return \Redirect::back();
}
}
我在 if 语句中给出了一个条件,但我不知道为什么不工作,但 else if 语句工作正常。如果数据已经存在,我想删除它,如果它不存在,我想插入一个数据。我可以知道一些适当的解决方案吗?
提前致谢
【问题讨论】:
-
尝试检查您的
DB::select(...)语句的输出并验证它们是否包含您所期望的内容。 -
来自Running Queries:“select 方法总是会返回一个结果数组。”
-
类型杂耍...
select不返回整数,它返回一个潜在结果数组...[] == 0是false但[] > 0是true
标签: php sql laravel postgresql