目前,我有tbl_projtask
来自MySQL
,我在laravel应用中有此查询。如果tbl_projtask
有行,这会很好。
$projtask = DB::connection('mysql')->select("SELECT * from tbl_projtask WHERE projCode = '".$request->projCode."' AND taskCode = '".$request->taskCode."' AND deleted = 0")
但是当我截断表格时。
此查询返回了这样的错误
"message": "Undefined offset: 0",
我正在使用count()
来验证表中是否有数据。
类似的东西
if(count($projtask)){
//Some codes
}else{
//Some codes
}
如果我截断表格。该代码给我上述错误。但是,如果没有被截断,则有一些行。 count()
的代码正常工作。最好的方法是什么?
答案 0 :(得分:0)
因为您正在与表格数据的整数进行比较。
将条件更改为类似的内容。
if(count($projtask) > 0){
//Some codes
}else{
//Some codes
}
您还可以使用查询生成器。
$projtask = DB::table('tbl_projtask')
->select("*")
->where(['projCode' => $request->projCode, 'taskCode'=> $request->taskCode, 'deleted' => 0 ])
->get()
答案 1 :(得分:0)
我认为您缺少->get()
或->first()
,如果您选择get()
,则会为您带来填充或空集合的预期回报,即:
$projtask = DB::connection('mysql')->select("SELECT * from tbl_projtask WHERE projCode = '".$request->projCode."' AND taskCode = '".$request->taskCode."' AND deleted = 0")->get()
因此,您现在可以检查它是否为空,即:
if(empty($projtask) === true){
// Handle logic if the collection is empty here
}
// else return the $projtask
return $projtask;