Использовать UNION в Codeigniter и получить ошибку? - PullRequest
0 голосов
/ 18 октября 2011

Я хочу выбрать данные с помощью UNION следующим образом:

$find = 'hello';
$data = $this->db->query('SELECT * FROM tour_foreign_residence WHERE name LIKE '%$find%' UNION SELECT * FROM tour_foreign WHERE name LIKE '%$find%''); // Line number 46

Но я сталкиваюсь с этой ошибкой:

> A PHP Error was encountered<br> Severity: Warning<br> Message:
> Division by zero<br> Filename: foreign.php<br> Line Number: 46<br>
> 
> A Database Error Occurred<br> The query you submitted is not
> valid.<br> Filename:
> D:\xampp\htdocs\system\database\DB_driver.php<br> Line
> Number: 257<br>

Как я могу это исправить?

Обновление:

Ошибка:

> A Database Error Occurred<br> Error Number: 1222<br> The used SELECT
> statements have a different number of columns<br> SELECT * FROM
> tour_foreign_residence WHERE name LIKE "%hello%" UNION SELECT * FROM
> tour_foreign WHERE name LIKE "%hello%"<br> Filename:
> D:\xampp\htdocs\system\database\DB_driver.php<br> Line Number: 330<br>

Ответы [ 3 ]

2 голосов
/ 18 октября 2011

Вы бросаете одинарные кавычки в строку, не экранируя их.Это может быть вашей проблемой.

1 голос
/ 18 апреля 2012

Таблица tour_foreign_residence и tour_foreign имеют разное количество столбцов.Удалите * после каждого выбора, чтобы установить одинаковое количество столбцов.

0 голосов
/ 18 октября 2011

Изменить это:

$data = $this->db->query('SELECT * FROM tour_foreign_residence WHERE name LIKE '%$find%' UNION SELECT * FROM tour_foreign WHERE name LIKE '%$find%'');

на

$data = $this->db->query('SELECT * FROM tour_foreign_residence WHERE name LIKE "%' . $find . '%" UNION SELECT * FROM tour_foreign WHERE name LIKE "%' . $find . '%"');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...