A community in which webmasters can ask for help with topics such as PHP coding , MySQL , IT jobs, web design, IT security.
Current location:homephp forumphp talk in 2009 yearCodeigniter: MySQL Where Clause and Quotes - page 1
User InfoPosts
Codeigniter: MySQL Where Clause and Quotes#1
Query in CodeIgniter:

$this->db->select((comments.created_at, comments.section_id, comments.submittedby_id, users.username, comments.text, sections.name();
$this->db->order_by((comments.created_at(, (desc();
$this->db->where((comments.submittedby_id(, (users.user_id();
$this->db->where((comments.section_id(, (sections.id();

$query = $this->db->get(array((comments(, (users(, (sections(),10);

Produce SQL Request:

SELECT pdb_comments.created_at,
pdb_sections.name FROM
(pdb_comments, pdb_users,
pdb_sections) WHERE
pdb_comments.submittedby_id =
(users.user_id( AND
pdb_comments.section_id =
(sections.id( ORDER BY
pdb_comments.created_at desc LIMIT

The issue is that the database prefix (pdb_) does not get added in the WHERE clause. I can manually insert the prefix by appending $this->db->dbprefix, but this doesn(t fix the main problem.


`pdb_comments`.`submittedby_id` = (pdb_users.user_id(

The quotes on the right side are not accurate, and generate 0 results for me. Is there any way to make CodeIgniter recognize the second half of the where clause as a piece of my table; thereby adding the database prefix, and properly placing the quotes by avoiding two joins? Is there another way to do this? Thanks in advance.



posted date: 2009-04-07 10:29:00

Re: Codeigniter: MySQL Where Clause and Quotes#2
I had made out the solution of this problem. click to view my topic...

hope that hepls.

posted date: 2009-04-07 10:29:01

Re: Codeigniter: MySQL Where Clause and Quotes#3
Possibly a dumb question, but why don(t you just write the SQL directly? The interface doesn(t look like it(s giving you anything but clutter.

posted date: 2009-04-07 10:37:00

Re: Codeigniter: MySQL Where Clause and Quotes#4
Use:$this->db->select((comments.created_at, comments.section_id, comments.submittedby_id, users.username, comments.text, sections.name();$this->db->from((comments();$this->db->join((users(, (comments.submittedby_id=users.user_id(); $this->db->join((sections(, (comments.section_id=sections.id(); $this->db->order_by((comments.created_at(, (desc();$query = $this->db->get();instead.

posted date: 2009-04-07 11:15:00

Re: Codeigniter: MySQL Where Clause and Quotes#5
nice to use the CI calls instead -- gives me flexibility with DB prefixes, etc.

posted date: 2009-04-07 11:32:00

Re: Codeigniter: MySQL Where Clause and Quotes#6
i'm trying to avoid the joins to reduce overhead. not possible? or not needed?

posted date: 2009-04-07 11:37:00

Re: Codeigniter: MySQL Where Clause and Quotes#7
What you were trying to accomplish is still a join; not an explicit join (is doesn't use the "join" keyword), but a join nevertheless. You should use explicit joins, to make your code more readable. Also, use EXPLAIN sql_statement, in your favourite client to see how the query is constructed.

posted date: 2009-04-07 23:57:00

select page: « 1 »
Copyright ©2008-2017 www.momige.com, all rights reserved.