php - 为什么数据库无法获取 post 方法发送的数据?
问题描述
我正在学习 PHP OOP,但遇到了问题。这是一个真正的初学者代码,我正在练习考试,但我被困住了,所以我需要一些帮助。我使用 CodeIgniter,数据库库已填充并自动加载。
我有一个表格:用户必须填写姓名、电子邮件和电话字段。控制器得到它,将其提供给应该将数据插入数据库的模型,但我收到一条错误消息:“列'trainedName'不能为空”所以我猜它首先没有获取数据。
视图(简化):
<form action="index.php/aboutme/calling" method="POST" enctype="text/plain">
<input class="callback" type="text" name="nev" placeholder="Neved:" required>
<input class="callback" type="email" name="email" placeholder="E-mail címed:" required>
<input class="callback" type="tel" name="telszam" placeholder="Telefonszámod (36201234567):" required>
<input type="submit">
</form>
控制器:
class Aboutme extends CI_Controller {
public function calling() {
$datas=array();
$trained = new Callback();
$trained->addTrained($datas);
$this->load->view('aboutme');
}
模型:
class Callback extends CI_Model {
function __construct() {
parent::__construct();
}
public function addTrained(){
$na = $this->input->post('nev');
$em = $this->input->post('email');
$ph = $this->input->post('telszam');
$datas = array(
'trainedName' => $na,
'email' => $em,
'phone' => $ph
);
$this->db->insert('trained', $datas);
}
感谢您的帮助!
解决方案
你说enctype="text/plain"
。这会导致表单以对人类更具可读性但无法被机器可靠解释的表单提交数据。PHP 不会为您解析该格式。不要那样做。
推荐阅读
- reactjs - 未使用功能组件更新子组件
- javascript - Rails vuejs获取iframe元素的高度
- java - 为什么我在复制和粘贴输入时收到 StringIndexOutOfBoundsExceptiuon?
- powershell - 在 Powershell 中运行“Invoke-SSHCommand”时会引发异常,因为无法找到“SSHSession”参数
- php - 如何在 PHP 标签中使用 Laravel 值
- ipad - Shapr3D ipad app是用什么编程编写的?
- arrays - getDisplayValues 未返回二维数组
- pandas - 通过字典查找获取可变的熊猫行数
- webrtc - webRTC是否支持远程机器屏幕共享和控制?
- android - Firebase 身份验证正在运行,但 Firestore 以缺少权限或权限不足为由拒绝请求