php - 从sql查询中删除单引号

标签 php mysql codeigniter

我尝试使用codeigniter运行sql查询,但由于查询中的单引号而无法成功。以下是我的查询:

function getStaffUser($uid, $participant_list=0) {

$rid='1,2,3';
$where = "FIND_IN_SET(users.role_id, '".$rid."')"; 
$where_plist = "NOT FIND_IN_SET(users.uid, '".$participant_list."')"; 

$this->db->select("users.uid, CONCAT(`users`.`given_name`, ' ',`users`.`surname`) as 'user_name'", false);
$this->db->from('users');
$this->db->where($where);
$this->db->where("users.uid!=", $uid, false);
if($participant_list!=0){

$this->db->where($where_plist, false);    
}
$data = $this->db->get();

pr($this->db->last_query()); exit;
if ($data->num_rows() == 0)
    return false;
else
    return $data->result();

}

它返回以下查询:

SELECT users.uid, CONCAT(`users`.`given_name`, ' ', `users`.`surname`) as 'user_name' FROM (`users`) WHERE FIND_IN_SET(users.role_id, '1,2,3') AND users.uid!=1 AND `NOT` FIND_IN_SET(users.uid, '1,18,60')

但是,除了最后的 'NOT' 上仅出现单引号之外,查询一切正常。如果删除单引号并在 sqlyog 中运行,它就可以正常工作。

因此,删除它的最佳方法是什么。我尝试使用 false 但它也不起作用。

有什么帮助吗?

谢谢。

最佳答案

您应该能够简单地使用 !,如下所示:

$where_plist = "! FIND_IN_SET(users.uid, '".$participant_list."')"; 

NOT! 是别名:http://dev.mysql.com/doc/refman/5.1/en/logical-operators.html#operator_not

关于php - 从sql查询中删除单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27239931/

相关文章:

javascript - Chrome 重复 ajax 请求或响应

php - 用动态内容填充网站的一部分

php - 分别显示来自php mysql数组的值

html - 为什么 MySQL 表中的所有行都是相同的? (MySQL 表 > HTML 表)

php - 如何强制 PHP 将 fatal error 呈现为纯文本?

php - 是否有从 Phar 文件发布 PHP Web 应用程序的解决方案?

PHP MYSQL 从表中验证用户并设置 SESSION 'username'

php - 在 where 条件中使用括号 ()、星号 *.. 等特殊字符

codeigniter - CodeIgniter中的加密 key

php - 谷歌应用引擎: How to serve uploaded images in a PHP loop from google cloud storage