2016-01-23 3 views
1

Я пытаюсь выбрать информацию из моей базы данных с помощью codeigniter. Вот код:проблема с выбором из базы данных с codeigniter

public function getContent($table_name){ 

    $show = false; 
    $sql = 'SELECT * FROM ?'; 
    $query = $this->db->query($sql, array($table_name)); 
    if($query->num_rows > 0){ 
     $show = $query->result_array(); 
    } 
    return $show; 
    } 

Я получаю сообщение об ошибке от MySQL:

Номер ошибки: 1064

У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует вашему> версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с '' main_db '' в строке 1

SELECT * FROM 'main_db'

Имя файла: C: \ XAMPP \ HTDOCS \ Staz1 \ система \ Номер базы данных \ DB_driver.php

Line: 331

Я думаю, что проблема заключается в том, что запрос имеет 'main_db' с апостроф. При написании запроса непосредственно в секцию sql в phpmyadmin это была проблема, с которой я столкнулся (она работает только в том случае, если она написана без апострофов или с обратными окнами).

Если это действительно проблема - как отправить запрос без апострофов?

+1

'?' Избегает введенных пользователем значений. Его нельзя использовать для имен таблиц или чего-либо еще. Вы можете создать белый список для своих имен таблиц. – rybo111

ответ

2
public function getContent($table_name){ 
    return $this->db->from($table_name)->get()->result_array(); 
} 
+0

Зачем использовать '?' Вообще? – rybo111

+0

попробуйте это @Ben я только что отредактировал – synan54

+0

Да, это отлично работает! Спасибо – Ben

Смежные вопросы