Я пытаюсь проверить несколько баз данных с заданной пользователем строкой. Но SQL-запрос всегда возвращает true. Он должен возвращать false, если номер телефона существует в отдельных или корпоративных базах данных.CodeIgniter Multiple Table Select Not Working
Индивидуальные пользователи База данных:
| id | name | phone | gender |
--------------------------------------------------------
| 1 | John | 5551928321 | male |
| 2 | Michael | 5553270543 | male |
Корпоративные пользователи База данных:
| id | name | phone | company |
--------------------------------------------------------
| 1 | Megan | 5553748594 | demo1 |
| 2 | Ethan | 5559182012 | demo2 |
Индивидуальные и корпоративные таблицы имеют одинаковые и разные поля.
PHP:
$phone = '5551928321'; // $this->input->post('phone', true);
$query = $this->db->select('individual.id, corporate.id')
->where('individual.phone', $phone)
->or_where('corporate.phone', $phone)
->get('individual, corporate');
if ($query->num_rows() > 0) echo 'FALSE';
else echo 'TRUE';
Я буду очень рад, если кто-то зажигать меня для увидеть, как он будет работать.
Большое вам спасибо.
Я считаю, что вы можете передать только один параметр в get(), так что это -> get («индивидуальный, корпоративный»); неправильно. Посмотрите на это руководство пользователя. Однако я также не уверен в том, есть ли у вас утверждение if. Он всегда возвращает true, потому что строки не выбраны. – Lykos
Я пробовал только $ this-> get ('individual'); или только $ this-> get («корпоративный»); но ничего не получилось. Очень интересная проблема и не может найти какое-либо решение за 2 дня :) –