请帮助我的代码将数据插入数据库,并返回错误
遇到PHP错误严重性:通知消息:未定义 变量:computerName文件名:models / add_model.php行号:20
查看:
<form action="<?php echo base_url();?>index.php/speed/insert_into_db" method="post">
Branch: <input type="text" name="branch" /><br/>
Business Unit: <input type="text" name="buinessUnit" /><br/>
Device Type: <input type="text" name="deviceType" /><br/>
Brand: <input type="text" name="brand" /><br/>
Device Model: <input type="text" name="deviceModel" /><br/>
SN: <input type="text" name="SN" /><br/>
status: <input type="text" name="status" /><br/>
department: <input type="text" name="department" /><br/>
username: <input type="text" name="username" /><br/>
notes: <input type="textarea" name="notes" /><br/>
computername: <input type="text" name="computerName" /><br/>
Save:<input type="submit" name="save" />
</form>
模型:
public function insert_into_db() {
if(isset($_POST['save'])) {
$branch = $_POST['branch'];
$buinessUnit = $_POST['buinessUnit'];
$deviceType = $_POST['deviceType'];
$brand = $_POST['brand'];
$deviceModel=$_POST['deviceModel'];
$SN = $_POST['SN'];
$status = $_POST['status'];
$department = $_POST['department'];
$username = $_POST['username'];
$notes = $_POST['notes'];
$computerName = $_POST['computerName'];
}
$this->db->query("INSERT INTO `hardware_assets`(`Branch`, `Business Unit`, `Device Type`, `Brand`, `Device Model`, `SN`, `Status`, `Departmant`, `UserName`, `Notes`, `Computer Name`)
VALUES ('$branch','$buinessUnit','$deviceType','$brand','$deviceModel','$SN','$status','$department','$username','$notes','$computerName')");
}
}
控制器:
<?php
class Speed extends CI_Controller {
public function view($page = 'home')
{
// if ( ! file_exists(APPPATH.'/views/pages/'.$page.'.php'))
// {
// // Whoops, we don't have a page for that!
// show_404();
// }
// $data['title'] = ucfirst($page); // Capitalize the first letter
// $this->load->view('templates/header', $data);
// $this->load->view('pages/'.$page, $data);
// $this->load->view('templates/footer', $data);
// }
function insert_to_db(){
$this->load->model('add_model');
$this->add_model->insert_into_db();
$this->load->view('pages/home');//loading success view
}
}
答案 0 :(得分:1)
您不能在名称中使用空格命名您的表格字段,例如Computer Name
应为computerName
或computer_name
。
ASCII:[0-9,a-z,A-Z $ _](基本拉丁字母,数字0-9,美元, 下划线)
答案 1 :(得分:1)
你的模型根本不行,$ this-&gt; db-&gt; query()在条件块之外,我猜你没有设置$ _POST ['save']时会出现这个错误,最好重写模型
所以将模型更改为此(我们使用查询构建器,这在大多数情况下是更好的做法)
function insert_into_db() {
$post = $this->input->post();
if (!isset($post['save']) return;
$data = ['Branch'=> $post['branch'], 'Business Unit'=>$post['buinessUnit'] and rest of it.....];
$this->db->insert('hardware_assets', $data);
return $this->db->insert_id(); // if using mysql
一些注释可以帮助您避免以后出现此类问题或提高安全性:
始终使用表单助手来创建表单
始终使用查询构建器进行模型,并确保正确验证数据
永远不要使用$ _POST,请使用$ this-&gt; input-&gt; post()代替
如果你想在一个字符串中使用一个变量,总是把变量放在{}中,即:echo“你在{$ place}”
永远不要为列名
使用空格最好将属性匹配列名称命名为使您的代码更短,更快,更清晰并且没有错误(在这种情况下,您甚至不需要$ data,您可以直接使用$ post)