protected function emulate_bound_params($sql, array $params=null) {
        if (empty($params)) {
            return $sql;
        }
        // ok, we have verified sql statement with ? and correct number of params
        $parts = array_reverse(explode('?', $sql));
        $return = array_pop($parts);
        foreach ($params as $param) {
            if (is_bool($param)) {
                $return .= (int)$param;
            } else if (is_null($param)) {
                $return .= 'NULL';
            } else if (is_number($param)) {
                $return .= "'".$param."'"; // we have to always use strings because mysql is using weird automatic int casting
            } else if (is_float($param)) {
                $return .= $param;
            } else {
                $param = $this->mysqli->real_escape_string($param);
                $return .= "'$param'";
            }
            $return .= array_pop($parts);
        }
        return $return;
    }
protected function emulate_bound_params($sql, array $params=null) {
        if (empty($params)) {
            return $sql;
        }
        // ok, we have verified sql statement with ? and correct number of params
        $parts = array_reverse(explode('?', $sql));
        $return = array_pop($parts);
        foreach ($params as $param) {
            if (is_bool($param)) {
                $return .= (int)$param;
            } else if (is_null($param)) {
                $return .= 'NULL';
            } else if (is_number($param)) {
                $return .= "'".$param."'"; // we have to always use strings because mysql is using weird automatic int casting
            } else if (is_float($param)) {
                $return .= $param;
            } else {
                $param = $this->mysqli->real_escape_string($param);
                $return .= "'$param'";
            }
            $return .= array_pop($parts);
        }
        return $return;
    }
protected function emulate_bound_params ( $ sql , array $ params = null ) { if ( empty ( $ params ) ) { return $ sql ; } // ok, we have verified sql statement with ? and correct number of params $ parts = array_reverse ( explode ( '?' , $ sql ) ) ; $ return = array_pop ( $ parts ) ; foreach ( $ params as $ param ) { if ( is_bool ( $ param ) ) { $ return .= ( int ) $ param ; } else if ( is_null ( $ param ) ) { $ return .= 'NULL' ; } else if ( is_number ( $ param ) ) { $ return .= "'" . $ param . "'" ; // we have to always use strings because mysql is using weird automatic int casting } else if ( is_float ( $ param ) ) { $ return .= $ param ; } else { $ param = $ this -> mysqli -> real_escape_string ( $ param ) ; $ return .= "'$param'" ; } $ return .= array_pop ( $ parts ) ; } return $ return ; }
Very ugly hack which emulates bound parameters in queries
because prepared statements do not use query cache.
Very ugly hack which emulates bound parameters in queries because prepared statements do not use query cache .