gpt4 book ai didi

php - 带变量的 Codeigniter MySQL 查询

转载 作者:行者123 更新时间:2023-11-29 01:27:16 27 4
gpt4 key购买 nike

我正在尝试在 Codeigniter 中运行以下示例查询

SELECT users.id, users.first_name, users.last_name, users.game_id
FROM users
WHERE users.id NOT IN
(SELECT banned.users_id FROM banned) AND game_id = '1'
ORDER BY last_name

现在这在 MySQL 中工作正常,但是我需要以下变量 (game_id, '1', last_name) 以便我可以执行以下操作

型号

function get_where_custom_ordered_checked($col, $value, $order_by) {

$query = $this->db->query('
SELECT users.id, users.first_name, users.last_name, users.game_id
FROM users
WHERE users.id NOT IN
(SELECT banned.users_id FROM banned) AND $col = $value
ORDER BY $order_by
');
return $query;
}

显然这是行不通的,查询无法识别该变量。我将如何实现这一目标?我也尝试过使用 SET,如下所示(但仍然无济于事)。

型号

function get_where_custom_ordered_checked($col, $value, $order_by) {
$query1 = 'SET @col = '$col', @value = '$value', @order_by = '$order_by'';
$this->db->query($query1);
$query2 = $this->db->query('
SELECT users.id, users.first_name, users.last_name, users.game_id
FROM users
WHERE users.id NOT IN
(SELECT players_phases.players_id FROM players_phases) AND @col = @value
ORDER BY @order_by
');
$query = $this->db->query($query2);
return $query;
}

现在我尝试分解它而不是使用 Codeigniter Active Record 类,但我不知道如何将 where_not_in() 包含在 where() 中,特别是因为我需要运行 NOT IN 查询第二个表 - 与 Active Records CI 文档中显示的 where_not_in() 示例不同,它针对同一个表。

如有任何建议或帮助,我们将不胜感激。

非常感谢。

最佳答案

在 PHP 中,您不能在单引号中使用变量,它们将不会被识别。

改用下面的代码:

'SELECT users.id, users.first_name, users.last_name, users.game_id
FROM users
WHERE users.id NOT IN
(SELECT players_phases.players_id FROM players_phases) AND ' . $col . ' = ' . $value . 'ORDER BY @order_by'

如果这对您有用,请告诉我。

关于php - 带变量的 Codeigniter MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36790149/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com