我正在尝试运行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)
在手动指定列名时有效。
在变量的情况下也不行吗?
答案 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)]);