КОНКАТ с кодигнитором - PullRequest
2 голосов
/ 08 марта 2012

Я определенно не вижу проблемы, почему это не работает. Есть идеи о возможностях?

$this->db->select(CONCAT_WS(' ', 'users.first_name', 'users.last_name') 'AS name');

EDIT:

Я обновил предложенную строку, но по какой-то причине я все еще получаю ошибку.

function getAllMessages($user_id)
{
    $this->db->select('pm.id');
    $this->db->select('pm.subject');
    $this->db->select("CONCAT_WS(' ', users.first_name, users.last_name) AS name");
    $this->db->select("DATE_FORMAT('pm.date_sent', '%M %D, %Y'");
    $this->db->select('pm.message_read');
    $this->db->from('users_personal_messages AS pm');
    $this->db->join('users', 'users.user_id = pm.sender_id');
    $this->db->where('recipient_id', $user_id);
    $query = $this->db->get();
    if ($query->num_rows() > 0)
    {
        return $query->result();;
    }
    else
    {
        return 0;
    }
}

UPDATE:

function getAllMessages($user_id)
{
    $this->db->select('pm.id');
    $this->db->select('pm.subject');
    $this->db->select("CONCAT_WS(' ', users.first_name, users.last_name) AS name");
    $this->db->select("DATE_FORMAT('pm.date_sent', '%M %D, %Y')");
    $this->db->select('pm.message_read');
    $this->db->from('users_personal_messages AS pm');
    $this->db->join('users', 'users.user_id = pm.sender_id');
    $this->db->where('recipient_id', $user_id);
    $query = $this->db->get();
    if ($query->num_rows() > 0)
    {
        return $query->result();;
    }
    else
    {
        return 0;
    }
}

ВТОРОЕ ОБНОВЛЕНИЕ:

function getAllMessages($user_id)
{
    $this->db->select('pm.id');
    $this->db->select('pm.subject');
    $this->db->select("CONCAT_WS(' ', users.first_name, users.last_name) AS name");
    $this->db->select(DATE_FORMAT(pm.date_sent, '%M %D, %Y'));
    $this->db->select('pm.message_read');
    $this->db->from('users_personal_messages AS pm');
    $this->db->join('users', 'users.user_id = pm.sender_id');
    $this->db->where('recipient_id', $user_id);
    $query = $this->db->get();
    if ($query->num_rows() > 0)
    {
        return $query->result();;
    }
    else
    {
        return 0;
    }
}

Ответы [ 2 ]

5 голосов
/ 08 марта 2012

Вам нужно правильно заключить строку в кавычки. Имена столбцов не должны заключаться в кавычки, однако весь строковый параметр в select() должен быть заключен в кавычки.

$this->db->select("CONCAT_WS(' ', users.first_name, users.last_name) AS name");

См. CodeIgniter select() документы для множества примеров ...

Обновление

Ваша ошибка - отсутствие круглых скобок в строке DATE_FORMAT():

$this->db->select("DATE_FORMAT(pm.date_sent, '%M %D, %Y')");
//------------------------------------------------------^^^^
0 голосов
/ 23 января 2015

Изменить это $ this-> db-> select ("CONCAT_WS ('', users.first_name, users.last_name) AS name");с этим $ this-> db-> select ("CONCAT_WS ('', users.first_name, users.last_name) AS name", FALSE);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...