You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中含单引号的请求数据无法保存的问题解决咨询

解决Laravel中保存含单引号内容时的报错问题

咱们先拆解下你遇到的问题,其实分两种场景,我一个个给你说清楚:

首先看你手动赋值的那行代码:

$data->name = 'Roq'ie;

这行代码本身就有PHP语法错误,不是Laravel的问题。因为PHP里用单引号包裹字符串时,字符串内部的单引号必须转义,不然PHP会把'Roq'当成一个完整的字符串,后面的ie就会被当成未定义的变量,直接触发语法报错。

解决这个语法问题有两种简单方法:

  • 用反斜杠转义字符串里的单引号:
    $data->name = 'Roq\'ie';
    
  • 改用双引号包裹整个字符串,这样内部的单引号就不需要转义了:
    $data->name = "Roq'ie";
    

然后再说说从请求获取值的场景:

$data->name = $request->name;
$data->save();

这种情况完全不用操心单引号的问题,因为Laravel的Eloquent ORM会自动帮你处理SQL注入和特殊字符转义。只要用户输入的内容是Roq'ie,直接赋值保存就可以正常存入数据库,不会触发报错。

总结一下:

  • 手动写字符串时,要遵守PHP的字符串语法规则,处理好内部的单引号
  • 从请求或用户输入获取的值,Eloquent会自动处理转义,无需手动操作

内容的提问来源于stack exchange,提问作者Imam Ahmad Ashari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:20:39