【问题标题】:Blank Page after executing insert query in codeigniter在codeigniter中执行插入查询后的空白页
【发布时间】:2017-09-29 21:27:46
【问题描述】:

执行以下查询后,codeigniter 显示空白页,我认为插入查询中存在语法错误,也无法打印查询。请帮忙

我的模型代码如下:

function add_new_user($email,$password,$username)
{

    $sqls="INSERT INTO pr_users (username,userpass,email,departmentid,userroleid,managerid,userlevel,branchid,is_global,registrationtime,timemodified,modifierid,status,deleted,temppass,temppassvalidtill,lastlogin,lastrefresh,lastloginip,if_online,pfield) values ('".$email."','".65e1b655a6d6f4cbed20554d3b52521a743afdc0."','".$email."','".1."','".4."','".10."','".4."','".2."','".0."','".0."','".1491557947."','".1."','".1."','".0."','".."','".0."','".1492084067."','".1492084083."','".::1."','".0."','".unfold983$."')";
    $query=$this->db->query($sqls);

    $result = $this->db->last_query();  
    return $result;

}

【问题讨论】:

  • 你是认真的吗?放置“die”将允许执行页面?
  • 死;之后什么都不会执行
  • 去掉了模具还是一样
  • 需要像这样回显 echo $this->db->last_query();死;
  • 你在这里使用了一个框架!并将自己暴露于 SQL 注入。这太有趣了

标签: php mysql codeigniter codeigniter-2 codeigniter-3


【解决方案1】:

试试这个

function add_new_user($email,$password,$username)
{
    $sqls="INSERT INTO pr_users (username,userpass,email,departmentid,userroleid,managerid,userlevel,branchid,is_global,registrationtime,timemodified,modifierid,status,deleted,temppass,temppassvalidtill,lastlogin,lastrefresh,lastloginip,if_online,pfield) values ('$email','65e1b655a6d6f4cbed20554d3b52521a743afdc0','$email','1','4','10','4','2','0','0','1491557947','1','1','0','','0','1492084067','1492084083','1','0','unfold983$')";
    $query=$this->db->query($sqls);

    if ($this->db->affected_rows() > 0) {
        echo "Success";
        # return TRUE;
    } 
    else {
        echo "failed";
        # return FALSE;
    }

}

注意:确保index.php(in root) 环境中为development

define('ENVIRONMENT', 'development'); # line 21

强烈推荐使用Codeigniter Query Builder Class

【讨论】:

  • 乐于助人:)
【解决方案2】:

像这样重写您的插入语句: 还要检查你的最后一个参数。在我看来,你需要转义'$'

`$sqls="INSERT INTO pr_users  (username,userpass,email,departmentid,userroleid,managerid,userlevel,branchid,is_global,registrationtime,timemodified,modifierid,status,deleted,temppass,temppassvalidtill,lastlogin,lastrefresh,lastloginip,if_online,pfield) values ('".$email."','65e1b655a6d6f4cbed20554d3b52521a743afdc0','".$email."','1','4','10','4','2','0','0','1491557947','1','1','0','','0','1492084067','1492084083','::1','10','unfold983\$')";`

【讨论】:

  • 只是 echo yourb $sqls 并粘贴到这里
  • 或从您的日志中检查错误是什么。设置 error_reporting 'ON' 也
【解决方案3】:

换行:

$this->db->last_query();  

与:

$result = $this->db->last_query();  
return $result;

【讨论】:

  • 尝试回显$result
  • $this->db->last_query();是给出最后执行的查询
  • @JYoThI 我认为sunshine 只想返回查询。
  • 删除values()中的所有"并尝试插入查询。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多