Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मैसकल, पीडीओ - जैसा कथन बाइंडपरम का उपयोग करके काम नहीं कर रहा है

आपको प्रत्येक पैरामीटर को अलग से बाँधने की आवश्यकता है, आप दूसरे लूप के साथ ऐसा कर सकते हैं।

function retrieve_search_posts(PDO $pdo, $search_field) {
    /*
     * Get the PDO object as an argument, this function shouldn't care
     * how the PDO object is created, that's the factory's job.
     */

    /*
     * Use $underscored_names or $camelCase for variable names, easier on the eye
     */

    ## Variable initializations ##
    $where = array();

    ##Function start
    $words = preg_split("/\s+/", $search_field);

    for ($i = 0; $i < count($words); $i++) {
        /*
         * We don't need to have the word in here,
         * so we aren't even using the foreach loop, just a normal for
         */
        $where[] .= "`post_title` LIKE ?";
    }
    /*
     * For cleaner code, use an array and implode the pieces with OR,
     * this way, you don't get an OR at the beginning, nor the end.
     */
    $where_string = implode(" OR ", $where);

    $query = <<<MySQL
SELECT  p.post_id, post_year, post_desc, post_title, post_date, img_file_name, p.cat_id
    FROM mjbox_posts p
    JOIN    mjbox_images i
    ON      i.post_id = p.post_id
        AND i.cat_id = p.cat_id
        AND i.img_is_thumb = 1
        AND post_active = 1
    WHERE ?
    ORDER BY post_date DESC
    LIMIT 9
MySQL;

    $sth = $pdo->prepare($query);

    /*
    * Iterate over the array again,
    * this time, we're binding the values based on the index
    */
    foreach ($words as $index => $word) {
        $sth->bindValue($index+1, $word, PDO::PARAM_STR);
    }

    $sth->execute();

    $result = $sth->fetchAll(PDO::FETCH_ASSOC); //Fetch all the results in associative array form

    return $result;

}

किए गए परिवर्तनों की व्याख्या करने के लिए कोड पर टिप्पणियाँ देखें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फॉर्म जमा करने के बाद (इंटेल-टेल-इनपुट) प्लगइन से कंट्री कोड कैसे प्राप्त करें?

  2. उद्धरणों के साथ पायथन और MySQL क्वेरी

  3. अधिकतम तिथि होने के अनुसार ग्रुप करें

  4. केकपीएचपी के साथ यूटीएफ -8 आउटपुट

  5. एक ही प्रश्न में योग और कुल योग द्वारा समूह प्राप्त करना