为什么React发起POST请求调用PHP接口插入数据库时字段全为null?
问题排查方案
- 第一步先验证PHP侧是否拿到了请求数据:在PHP代码最开头插入
var_dump($_POST);exit;,重新发起请求查看返回结果:- 如果返回空数组,说明是请求格式不兼容:React默认发送
application/json格式的请求,PHP的$_POST仅支持解析表单格式(application/x-www-form-urlencoded/multipart/form-data)的参数,JSON格式需要手动读取:
后续绑定参数时使用// 替换原有从$_POST取参数的逻辑 $postData = json_decode(file_get_contents('php://input'), true);$postData['longUrl']这类写法即可。 - 如果返回的数组里存在对应字段,核对键名大小写是否完全匹配,PHP数组键名大小写敏感,前端传
longurl和后端取longUrl会导致取值为null。
- 如果返回空数组,说明是请求格式不兼容:React默认发送
- 确认数据库连接配置正确,没有出现连错库、连错表的情况,插入操作执行的库表和你查询的库表必须一致。
- 可选写法优化:直接把参数数组传给
execute方法,避免绑定参数时的拼写错误:$stm->execute([ ':longUrl' => $postData['longUrl'], ':shortId' => $postData['shortId'], ':userIp' => $postData['userIp'], // 剩余参数按同样格式补充 ]);
内容的提问来源于stack exchange,提问作者Alexander Roumeliotis
相关产品推荐
相关产品推荐

