4
\$\begingroup\$

I have the following functions:

 function getExample($id, $otherid) {
            global $db;
            $query = 'SELECT * FROM examples WHERE id = :id AND otherid= :otherid';
            try { 
                $statement = $db->prepare($query);
                $statement->bindValue(':id', $id);
                $statement->bindValue(':otherid', $otherid);
                $statement->execute();
                $result = $statement->fetchAll();
                $statement->closeCursor();
                return $result;
            } catch (PDOException $e) {
                $error_message = $e->getMessage();
                display_db_error($error_message);
            }
        }

 function getSecExample($id) {
            global $db;
            $query = 'SELECT * FROM examples WHERE id= :id';
            try { 
                $statement = $db->prepare($query);
                $statement->bindValue(':id', $id);
                $statement->execute();
                $result = $statement->fetchAll();
                $statement->closeCursor();
                return $result;
            } catch (PDOException $e) {
                $error_message = $e->getMessage();
                display_db_error($error_message);
            }
        }

Is there a way to make this one function instead of two? I want it to be secure and done with the best practices.

\$\endgroup\$
2
\$\begingroup\$

I'm not sure why you think that forcing this into one function will make it a "best practice," and that doesn't seem right anyways.

I suppose one way you could do it is:

 WHERE id = :id AND otherid LIKE :otherid

If it were to be in the second function, :otherid would be a wildcard (%). Otherwise just have your value. Check out this.

\$\endgroup\$
  • \$\begingroup\$ The reason I was asking, is because I have a lot of functions like that; they are quite a bit the same. I was hoping to somehow combine some of them together so I had less functions to deal with. I appreciate your response. \$\endgroup\$ – Sam J. Feb 16 '15 at 18:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.