gpt4 book ai didi

php - Laravel:检查 MySQL 查询是否有结果

转载 作者:可可西里 更新时间:2023-11-01 07:55:51 27 4
gpt4 key购买 nike

第一个 Laravel 项目。我有一个 Controller 功能,用于检查是否有带有该条形码的记录。如果没有则插入一条记录。如果是,则加一。

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);

当我尝试时,它有以下错误:

ErrorException in SellController.php line 17: mysqli_num_rows() expects parameter 1 to be mysqli_result, array given

我做错了什么?

最佳答案

你不能只在 Laravel 查询构建器上使用 mysql_num_rows。 Laravel 查询生成器将返回 collection , 所以你可以只使用 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]);
}

如果您使用的是 Laravel 5.3 之前的版本,查询构建器将返回一个数组。在这种情况下,您可以使用 php count在此数组上运行以了解返回了多少行

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]);
}

关于php - Laravel:检查 MySQL 查询是否有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42589861/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com