php - 在 laravel 中使用基本更新查询时出错
问题描述
我正在尝试运行 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:更新动画 SET Genre_id = 2 其中 anm_id = 4)
它在手动给出列名时起作用。
它不应该在变量的情况下也起作用吗?
解决方案
尝试使用此查询,
DB::update("UPDATE animes SET ? = '%?%' Where ? = '%?%' ",
[$col_name, $nvalue, $cond, $condval]);
或者
DB::table('animes')
->where($cond, $condval)
->update([$col_name =>DB::raw($value)]);
推荐阅读
- python - 如何在运行 apache 之前做源环境变量
- firebase - 如何在 Firestore 中添加父集合?
- c - C中的函数参数和变量地址
- r - R - 模型中变量和残差的不同长度
- c# - c#:使用不安全指针在 double[] 数组和另一个不是 double[] 的数组之间复制
- javascript - 当程序终止时,第一个减速器如何获取第二个减速器的值?
- python - 如何在 python 中使用没有类和 def 函数的单元测试?
- php - 使用 PHP mt_rand() 代替 MySQL rand() 以避免慢查询
- clion - CLion 不打印异常,即使打印了其他控制台输出
- android - 在 Android 中实施调查/测验