Что не так с моим простым SQL-запросом CodeIgniter? - PullRequest
1 голос
/ 20 ноября 2011

У меня просто маленький вопрос по поводу запроса, который сводит меня с ума.Я работаю с CI, и это первый раз, когда я использую этот замечательный фреймворк

1 - Хорошо, у меня есть запрос вставки, работающий довольно хорошо:

$data = array(

 'nom' => $nom,
 'prenom' => $prenom,
 'login' => $prenom.' '.$nom,
 'password' => 'facebook',
 'email' => $fb_data['me']['email'],
 'mobile' => "00",
 'etat' => "1",
 'role' => "1",
 'ville' => 'ville actuelle',
 'facebook_id' => $fb_data['uid'],     
);

$this->db->insert('membre', $data);  

И яне понимаю, почему он всегда вставляет данные дважды ...!

2— Тогда у меня второй вопрос: я просто хочу найти пользователя с соответствующим facebook_id, поэтому я пытаюсь это сделать:

<code>$this->db->select('nom');
$this->db->from('membre');
$this->db->where('facebook_id',$fb_data['uid']);
$resultat=$this->db->get();

echo '<pre>';
print_r($resultat);
echo '
';

Я также пробовал:

<code>$resultat2 = $this->db->get_where('membre',array('facebook_id' => $fb_data['uid']));
echo '<pre>';
print_r($resultat2);
echo '
';

Но в обоих случаях единственный массив, который я получил:

CI_DB_mysql_result Object
(
  [conn_id] => Resource id #36
  [result_id] => Resource id #61
  [result_array] => Array
      (
      )

  [result_object] => Array
      (
      )

  [custom_result_object] => Array
      (
      )

  [current_row] => 0
  [num_rows] => 1
  [row_data] =>
)

Итак, [result_id] в порядке, но данных нет (насколько это предполагаетсябыть напечатанным в [row_data]?) Когда я просто примеряю mysql, я получаю правильный результат с правильным членом.Но с CI это не похоже на работу.

3— Более того, когда я пытаюсь что-то вроде этого:

echo $resultat['nom'];  

это не рассматривается как массив ..

Так что ... да, я не очень понимаю ... Если кто-нибудь может меня просветить?

Ответы [ 3 ]

4 голосов
/ 20 ноября 2011

Не забудьте использовать метод result () в конце, иначе вы получите только ресурс.Вот так:

$resultat2 = $this->db->get_where('membre',array('facebook_id' => $fb_data['uid']))->result();

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

0 голосов
/ 25 мая 2013

для 2 и 3

, которые будут работать с вами

<code>$this->db->select('nom');
$this->db->from('membre');
$query = $this->db->get_where('facebook_id',$fb_data['uid']);
$row= $result->row();

echo '<pre>';
echo'$row->uid'; // that will prent user id , you can change to what ever you want ex.  i want tp prent username it will be like this $row->username it should be same as database column 
echo '
';
0 голосов
/ 20 ноября 2011

1 - вы уверены, что не звоните insert(...) дважды?Возможно, вы можете использовать $this->db->last_query(), чтобы увидеть результат запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...