Fer*_*art 3 php mysql laravel laravel-5
第一个 Laravel 项目。我有一个控制器功能,用于检查是否有任何带有该条形码的记录。如果没有插入记录。如果是,则为计数加一。
public function sellmode(Request $request){
$barcode=$request->barcode;
$test = DB::select('select count from sellmode where barcode = ?', [$barcode]);
$row_cnt = mysqli_num_rows($test);
if ($row_cnt == 0) {
Debugbar::info('Új sor');
DB::insert('insert into sellmode (barcode, count) VALUES (?, ?)', [$barcode, '1']);
} else {
Debugbar::info('Meglév? frissítése');
DB::update('update sellmode set count = count + 1 WHERE barcode = ?' [$barcode]);
}
return view(sell);
Run Code Online (Sandbox Code Playgroud)
}
当我尝试它时,它有以下错误:
SellController.php 第 17 行中的 ErrorException:mysqli_num_rows() 期望参数 1 为 mysqli_result,给定数组
我做错了什么?
Jer*_*dev 10
你不能只mysql_num_rows在 Laravel 查询构建器上。Laravel 查询生成器将返回一个集合,因此您可以使用该isEmpty函数来查看它是否有任何结果。
if ($test->isEmpty()) {
Debugbar::info('Új sor');
DB::insert('insert into sellmode (barcode, count) VALUES (?, ?)', [$barcode, '1']);
} else {
Debugbar::info('Meglév? frissítése');
DB::update('update sellmode set count = count + 1 WHERE barcode = ?' [$barcode]);
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 Laravel 5.3 之前的版本,则查询构建器将返回一个数组。在这种情况下,你可以count在这个数组上使用 php函数来知道返回了多少行
if (count($test) === 0) {
Debugbar::info('Új sor');
DB::insert('insert into sellmode (barcode, count) VALUES (?, ?)', [$barcode, '1']);
} else {
Debugbar::info('Meglév? frissítése');
DB::update('update sellmode set count = count + 1 WHERE barcode = ?' [$barcode]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14136 次 |
| 最近记录: |