我正在运行此查询
$query = "update my_cloud set full_dir_url = replace(full_dir_url, '$findWhat', '$replaceWith') where full_dir_url like '$findWhat/%' or where full_dir_url = '$findWhat' ";
DB::raw($query);
echo $query;
echo $query
的输出
更新my_cloud set full_dir_url = replace(full_dir_url,'/ 1st year / Slide','/ 1st Year / Slides')full_dir_url like'/ 1st Year / Slide /%'或full_dir_url ='/ 1st year / Slide '
当我在phpmyadmin sql编辑器中运行此查询时,数据会按预期更新。
但是DB::raw($query)
不会更新任何数据。也没有错误日志。
答案 0 :(得分:1)
DB::raw
没有运行查询,它将字符串包装在一个对象中,以便Laravel知道它不应该转义内容。
相反,您可以使用DB::update
功能:
$query = "update my_cloud set full_dir_url = replace(full_dir_url, '$findWhat', '$replaceWith') where full_dir_url like '$findWhat/%' or where full_dir_url = '$findWhat' ";
DB::update(query);
答案 1 :(得分:0)
回答我自己的问题:
问题1: DB::raw
不应该像Renée所说的那样有效。 DB::statement
或DB::update
都为我工作。
问题2 or where full_dir_url='$findWhat'
- 这个条款错了。我从where
中删除了or where
,但是有效。