2

Codeigntier を使用して、次のようなクエリを実行しています。

$query = $this->db->query("SELECT users.*, user_profiles.* FROM users, user_profiles WHERE " . "users.id = $user_id AND user_profiles.user_id = $user_id");
$row = $query->row();

最後のクエリを取得するためにエコーを配置しました$this->db->last_query()。これは次を示しています。

SELECT users.*, user_profiles.* FROM users, user_profiles WHERE users.id = 6850 AND user_profiles.user_id = 6850

返される結果は次のとおりです。

object(stdClass)[24]
  public 'id' => string '6849' (length=4)

結果が示す id は6849. 椅子から転げ落ちそうになった!MySQL データベースで同じクエリを実行したところ、まったく同じクエリに対して返された ID は6850. 6850 が正しい ID です。

これは最も単純なクエリであるため、これをデバッグする方法がわかりません。どんな助けでも感謝します。

4

1 に答える 1

4

列を明示的に選択し、AS *something*エイリアスを設定します。次に、ID を確認します。

列を指定していないためuser_profiles、テーブルの実際のユーザー ID ではなく、テーブルの ID が表示されている可能性があります。users

于 2013-06-27T20:17:58.513 に答える