Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果在CI模型中动态添加参数,则Mysql查询不起作用_Php_Mysql_Codeigniter - Fatal编程技术网

Php 如果在CI模型中动态添加参数,则Mysql查询不起作用

Php 如果在CI模型中动态添加参数,则Mysql查询不起作用,php,mysql,codeigniter,Php,Mysql,Codeigniter,我有一个sqlselect查询where。如果我输入一个静态值,它可以正常工作。但是如果我使用像$name这样的参数值,它就不起作用了。以下是我的示例代码: 我使用的是codeigniter,这个查询是用模型编写的 工作查询:(返回正确的值) 非工作查询:(返回null) 尝试var\u dump您的$email变量,因为它可能为空。如果没有,请尝试以下查询 $query=$this->db->query("SELECT e_id FROM employee WHERE mail='

我有一个sql
select
查询
where
。如果我输入一个静态值,它可以正常工作。但是如果我使用像
$name
这样的参数值,它就不起作用了。以下是我的示例代码:

我使用的是codeigniter,这个查询是用模型编写的

工作查询:(返回正确的值)

非工作查询:(返回null)


尝试
var\u dump
您的
$email
变量,因为它可能为空。如果没有,请尝试以下查询

$query=$this->db->query("SELECT e_id FROM employee WHERE mail='$email'");
请尝试以下内容:

function getid($email){    
    $query=$this->db->query('SELECT e_id FROM employee WHERE mail='.$email.'"');
}

用这种格式编写代码

function getid($email){    
    $query=$this->db->query("SELECT e_id FROM employee WHERE mail='".$email."'");
}

只需将
转换为


使用这些代码行

function getid($email){ 
  if(!empty($email)){
      return $query=$this->db->query('SELECT e_id FROM employee WHERE mail="'.$email.'"');
  }
}

在第二个查询中,您的列是
email
,而不是
mail
。正确的列名是什么?如果您在$email变量中获取值,请检查是否正确?抱歉,书写错误我再次编辑了我的问题,这不是因为列名。我更改了它。您为什么这样使用查询?为什么不使用CI active record。如get_where,where。询问调试帮助在SO是离题的。您的问题标题“不起作用”意味着您希望我们在错误所在的位置对其进行调试。我想知道为什么人们会投票支持它。我在模型中获得$email的价值@Toretto@Masiorama正如OP所说,他们的专栏没有问题name@Masiorama你投了我一票,但书面答复是myYour的答案在语法上是错误的。请再次检查“.”的用法。啊,您刚刚修复了,现在好多了。此查询与第二个OP查询完全相同。您刚刚颠倒了引号(单引号加双引号)。这并不能解决他的问题。我不明白他为什么接受了。
function getid($email){    
    $query=$this->db->query("SELECT e_id FROM employee WHERE mail='".$email."'");
}
 $query=$this->db->query("SELECT e_id FROM employee WHERE mail='".$email."'");
function getid($email){ 
  if(!empty($email)){
      return $query=$this->db->query('SELECT e_id FROM employee WHERE mail="'.$email.'"');
  }
}