Php 如果在CI模型中动态添加参数,则Mysql查询不起作用
我有一个sqlPhp 如果在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='
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.'"');
}
}