Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果值不存在,则更新记录;如果存在,则取消_Php_Mysql_Laravel - Fatal编程技术网

Php 如果值不存在,则更新记录;如果存在,则取消

Php 如果值不存在,则更新记录;如果存在,则取消,php,mysql,laravel,Php,Mysql,Laravel,下面是我的代码,不起作用 $edituser = DB::table('users') ->select('name','username') ->where('name', $username) ->first(); if(is_null($edituser)) { $set = DB::table('use

下面是我的代码,不起作用

    $edituser = DB::table('users')
                    ->select('name','username')
                    ->where('name', $username)
                    ->first();
        
    if(is_null($edituser)) {
        $set = DB::table('users')->update(array('username' => $request->setnewusername));
    } else {
        return redirect()->back()->with('error', 'Username sudah tersedia');
    }
    return redirect()->back()->with('success', 'Username berhasil diubah');

您正在尝试更新不存在的行。您可能想插入它。您使用Laravel,因此我假设您有一个用户模型:

$edituser = DB::table('users')
    ->select('name','username')
    ->where('name', $username)
    ->first();
    
if(is_null($edituser)) {
    //create a new user object, add the new name and save it to the database
    $user = new User();
    $user->name = $request->setnewusername;
    $user->save();
} else {
    return redirect()->back()->with('error', 'Username sudah tersedia');
}
return redirect()->back()->with('success', 'Username berhasil diubah');
编辑: 根据您的评论,您可以使用以下内容,它会检查是否有具有newUsername john的用户,如果没有,它会将user mark的用户名更新为john。请注意,它不会检查是否有名为Mark的用户:

    $oldUsername = "mark";
    $newUsername = "john";


    if(is_null(DB::table('users')->select('name','username')->where('name', $newUsername)->first())) {
        $set = DB::table('users')->where('name', $oldUsername)->update(array('username' => $newUsername));
    } else {
        return redirect()->back()->with('error', 'Username sudah tersedia');
    }
    return redirect()->back()->with('success', 'Username berhasil diubah');

“不起作用”不是解释你实际问题的恰当方式。请阅读,然后相应地编辑您的问题。您正在检查记录,如果它不存在,您是否正在尝试更新它?您无法更新不存在的内容。你不是说插入?你如何更新不存在的东西?我想更新一个用户名,例如“Mark”,我用“John”更新,如果用户名“John”不属于其他用户,则用“John”更新标记用户名,正如人们在上面的评论中所说的,最好更好地描述出哪里出了问题以及你的期望。我的代码不起作用,内容非常广泛,无法描述问题所在。因此,我建议下次多花点时间“编写”您的问题:。谢谢,但我在这里使用查询生成器Not EloquentOk根据您的评论进行了编辑