Laravel查询数据库出现SQL语法错误(1064)求助
问题解决:SQL语法错误(1064)
报错根源
你SQL语句里的to和from是MariaDB的保留关键字,直接当作字段名使用会触发语法校验失败。
修复代码
把保留关键字字段用反引号(`)包裹,修改后的控制器代码如下:
public function TransactionDetails ($merchant_id){ $client_data = DB::select('SELECT merchant_name,`to`,amount,`from`,date,status,provider from api_transactions where `to`=?', [$merchant_id]); return response()->json($client_data); }
额外优化建议
- 尽量别用数据库保留关键字做字段名,从根源避免这类问题。
- 用Laravel查询构造器的话,框架会自动处理保留关键字,代码更简洁:
public function TransactionDetails ($merchant_id){ $client_data = DB::table('api_transactions') ->select('merchant_name', 'to', 'amount', 'from', 'date', 'status', 'provider') ->where('to', $merchant_id) ->get(); return response()->json($client_data); }
内容的提问来源于stack exchange,提问作者Nosi Ishmael
相关产品推荐
相关产品推荐

