【问题标题】:CodeIgniter Multiple Table Select Not WorkingCodeIgniter 多表选择不起作用
【发布时间】: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


【解决方案1】:

你尝试过这样的事情吗? (未测试)

$query1 = $this->db->select('individual.id')->where('individual.phone', $phone)->get('individual');

$query2 = $this->db->select('corporate.id')->where('corporate.phone', $phone)->get('corporate'l);

if ($query1->num_rows() > 0 || $query2->num_rows() > 0){ 
     echo true;
} else {
     echo false;
}

【讨论】:

  • 确实如此,但需要用单个查询来完成,如果不可能,我将使用 2 个像你这样的查询。
  • 我写的这个有用吗?我不确定你是否可以在一个查询中做到这一点。你是否尝试过编写 MySQL 命令并创建你想要的查询,也许是在 phpmyadmin 上,然后检查是什么让你回来了?
  • 我没有测试你的代码,但它应该可以工作,问题是用一个查询来做这个,并且强烈认为它应该是可能的。我在网上检查了示例,他们只在 $_POST、$_GET 输入中使用了一次。示例如下:(bit.ly/1y4Qmh9)
  • 这与使用 (INNER) JOIN 执行此操作相同,因此使用 $this->db->join() 可能会对您有所帮助。
  • 我找到了解决方案,在获取之前再添加一个。 ->where('individual.id = corporate.id') 它正在工作:)
猜你喜欢
  • 2015-10-10
  • 2016-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 2014-02-25
  • 1970-01-01
相关资源
最近更新 更多