这是我在CI中的第二个网络应用程序。
我试图从表单中获取单个值(提交时)并将其插入数据库。
我有一个控制器“urlsubmission”:
<?php
class Urlsubmission extends CI_Controller{
function index() {
$this->load->model('domaincheckmodel');
$this->domaincheckmodel->verifyduplicates();
}
}
?>
模型(domaincheckmodel) - 在数据库中搜索任何重复项:
<?php
class Domaincheckmodel extends CI_Model{
function __construct(){
// Call the Model constructor
parent::__construct();
}
function verifyduplicates(){
#PREPARE DATA
$sql = "SELECT tld from ClientDomain WHERE tld = ?";
$postedTLD = $_POST['urlInput']; // Get unsanitized data
$endquery = $this->db->query($sql,array($this->db->escape_str($postedTLD))); // Query db
#CONDITION
if($endquery->num_rows() > 0){
$this->load->view('err/domainexists'); ##domain already used
## please login..
}
else{ #number of rows must be 0, insert into db
$newDomain = "INSERT INTO ClientDomain(tld) VALUES('".$this->db->escape_str($postedTLD)."')";
$this->load->view('success/domainfree');
## please register
}
}
}
?>
现在有两个愚蠢的观点:domainexists和domainfree:
domainexists:
<h2>Domain Exists</h2>
domainfree:
<h2>Domain free</h2>
问题是:当我运行脚本时,没有错误,但它正在执行else{}
块,但没有输入任何内容。
我已经设置了config / autoload来自动加载db lib,如:
$autoload['libraries'] = array('database');
我在这里做错了什么?
答案 0 :(得分:1)
您没有运行SQL查询。这样做。
$newDomain = "INSERT INTO ClientDomain(tld) VALUES('".$this->db->escape_str($postedTLD)."')";
$this->db->query($newDomain);
或者您可以使用simple_query()
$newDomain = "INSERT INTO ClientDomain(tld) VALUES('".$this->db->escape_str($postedTLD)."')";
$this->db->simple_query($newDomain);
答案 1 :(得分:0)
您声明INSERT语句但从不执行它?