双倍时间数据被插入mysql中

时间:2016-01-27 12:37:42

标签: php mysql codeigniter

每当我尝试插入数据时,我会在数据库中插入两次或三次,第二次而不是数据,值0被插入。 我也需要使用提交按钮插入数据。但它无法正常工作。 hello_con.php &lt;?php if(!defined(&#39; BASEPATH&#39;))退出(&#39;不允许直接访问脚本&#39;); class Hello_con扩展CI_Controller {     / **      *此控制器的索引页面。      *      *映射到以下URL      * http://example.com/index.php/welcome      * - 要么 -      * http://example.com/index.php/welcome/index      * - 要么 -      *由于此控制器被设置为默认控制器      * config / routes.php,它显示在http://example.com/      *      *所以任何其他没有前缀的公共方法都会      * map to /index.php/welcome/<method_name>      * @see http://codeigniter.com/user_guide/general/urls.html      * /     公共职能指数()     {         // $这 - &GT;负载&gt;查看(&#39; heloo_view&#39);     }     公共功能heloo()     {         $这 - &GT;负载&gt;查看(&#39; heloo_view&#39);         $用户= $这 - &GT;输入 - &GT;柱(&#39;用户&#39);         $ user = array(                 &#39; USER_NAME&#39; = GT; $用户                 );          $这 - &GT;负载&GT;模型(&#34; heloo_model&#34);          $这 - &GT; heloo_model-&GT; insert_user($用户);          return $ user;          echo&#34; hi,welcome:&#34;。&#34; $ user&#34 ;;     } } / *文件结束welcome.php * / / *位置:./ application / controllers / welcome.php * / heloo_model.php &LT; PHP class Heloo_model扩展CI_Model {     public function insert_user($ user)     {         $这 - &GT;负载&GT;数据库();         $这 - &GT; DB-&GT;插入(&#34; userdetail&#34;,$用户);     } } ?&GT; heloo_view.php &LT; HTML&GT; &LT; HEAD&GT; &lt; title&gt; heloo world&lt; / title&gt; &LT; /头&GT; &LT;身体GT; &lt; p&gt;欢迎来到heloo world&lt; / p&gt; &lt; form method =&#34; post&#34;&gt; 输入你的名字: &lt; input type =&#34; text&#34;命名=&#34;用户&#34;占位符=&#34;输入您的姓名&#34;&gt; &lt;输入类型=&#34;提交&#34;命名=&#34;提交&#34;值=&#34;子&#34;&GT; &LT; /形式&GT; &LT; /体&GT; &LT; / HTML&GT;

2 个答案:

答案 0 :(得分:2)

即使您尚未提交表单,也需要验证用户是否会插入行。

用这个替换你的heloo():

public function heloo()
{
    // User will be false if there wasn't any post data
    $user=$this->input->post('user');

    if($user !== false) {
        // The form was submitted
        $user = array(
            'user_name'=>$user
        );

        $this->load->model("heloo_model");
        $this->heloo_model->insert_user($user);

        echo "hi, welcome:"."$user";
    } else {
        // The form needs to be shown here
        $this->load->view('heloo_view');
    }
}

此代码最初将显示表单,直到用户提交表单并创建行。

答案 1 :(得分:2)

您可以将其用作:

public function heloo()
{
    if(isset($this->input->post('user'))){
        $user = $this->input->post('user');

        $insert = array(
            'user_name'=>$user
        );

        $this->load->model("heloo_model");
        $this->heloo_model->insert_user($insert);
        echo "hi, welcome:".$user; 
    }

    $this->load->view('heloo_view');
}

您的代码中的问题:

  1. 您在数据库中获取空行,因为您没有验证数据,您需要验证是否从邮件获取。
  2. 使用return后,您回复“hi,welcome”,由于return,它无法返回用户名。
  3. 始终在功能结束时加载视图文件。