在Laravel中使用基本更新查询时出错

时间:2019-06-15 03:43:48

标签: php sql laravel laravel-5

我正在尝试运行innoDB服务器中的以下代码,以使用基本查询形式更新表的值。但它一直显示错误。

if(isset($_POST['col_opt']) &&
    isset($_POST['val1']) &&
    isset($_POST['where_opt']) &&
    isset($_POST['val2']) 
){
    $col_name = $_POST['col_opt'];
    $nvalue = $_POST['val1'];
    $cond = $_POST['where_opt'];
    $condval = $_POST['val2'];

    DB::update("UPDATE animes SET ? = ? Where ? = ?",
        [$col_name, $nvalue, $cond, $condval]);

sql正在获取所有变量的值。但它仍然显示错误:

  

SQLSTATE [42000]:语法错误或访问冲突:1064

     

您有一个   您的SQL语法错误;检查与您的手册相对应的手册   MariaDB服务器版本可在'?附近使用正确的语法? =?在哪   =?'在第1行(SQL:UPDATE animes SET genre_id = 2,其中anm_id = 4)

在手动指定列名时有效。

在变量的情况下也不行吗?

1 个答案:

答案 0 :(得分:0)

尝试使用此查询,

DB::update("UPDATE animes SET ? = '%?%' Where ? = '%?%' ",
        [$col_name, $nvalue, $cond, $condval]);

OR

DB::table('animes')
            ->where($cond, $condval)
            ->update([$col_name =>DB::raw($value)]);