4

这是我在 CI 中的第二个 Web 应用程序。

我正在尝试从表单中获取单个值(提交时)并将其插入数据库。

我有一个控制器“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:

域存在:

<h2>Domain Exists</h2>

无域名:

<h2>Domain free</h2>

问题是:当我运行脚本时,没有错误,但它正在正确执行else{}块,但没有向数据库输入任何内容。

我已经设置了 config/autoload 来自动加载 db lib,例如:

$autoload['libraries'] = array('database');

我在这里做错了什么?

4

2 回答 2

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);
于 2012-12-25T03:18:28.313 回答
0

您声明了 INSERT 语句但从不执行它?

于 2012-12-25T03:19:00.233 回答