【发布时间】:2014-11-29 22:05:05
【问题描述】:
我正在尝试使用用户给定的字符串检查多个数据库。但是 SQL 查询总是返回 true。如果电话号码存在于个人或公司数据库中,它必须返回 false。
个人用户数据库:
| 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('individual,corporate');是错的。请查看用户指南。但是,我也不确定您的 if 语句。它总是返回 true,因为没有获取任何行。
-
我只试过 $this->get('individual');或者只有 $this->get('corporate');但没有任何效果。非常非常有趣的问题,两天内找不到任何解决方案:)
标签: php mysql sql codeigniter