检查记录是否在db-php中

时间:2014-02-06 23:11:21

标签: php database codeigniter record

我有问题。我应该检查一下我的数据库中是否有电子邮件。 我正在使用CI(CodeIgniter)

MODEL:

   function getUsersPoints($email)
{
$query = $this->db->query("SELECT * FROM `points` WHERE `p_email` = '$email'");
return $query->result();
}

控制器: 它是一个插入表customers中的所有数据的函数,然后我应该检查电子邮件是否在第二个表points中,如果没有,我应该添加它。所以,我做了什么:

$this->model->insert_customer($firstname, $lastname, $email, $telephone, $street, $house);
$getUserPoints = $this->model->getUsersPoints($email);

if(count($getUserPoints) == 0)
    echo "ADD in table points";
else
    echo "DO SOMETHING ELSE";

有人可以告诉我我做错了吗?

3 个答案:

答案 0 :(得分:1)

ActiveRecord的result()返回对象,但是你想要count()它,所以你需要使用 - > result_array():

function getUsersPoints($email) {
    $query = $this->db->query("SELECT * FROM `points` WHERE `p_email` = '$email'");
    return $query->result_array();
}

你也可以在模型中使用 - > count_all_results(),它只返回count。但我认为,在这种情况下你应该使用另一种ActiveRecords方法来进行查询。

答案 1 :(得分:0)

function getUserPoints($email){
return $this->db->where('email', $email)->count_all_results('points');
}

答案 2 :(得分:0)

$data = array(  `p_email` => $email);
$query = $this->db->get_where('points',$data);
if($query->num_rows() == 0)
{
   //Write your code
}
else
{
   //your code
}
相关问题