PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 25/05/2009 22:37:22

greatman
Membre

Problème de SELECT * avec un Full search

Allo all!

J'ai présentement un problème avec ma commande sql.

J'obtient cette erreur:

Warning: pg_query() [function.pg-query]: Query failed: ERREUR: chaîne entre guillemets non terminée sur ou près de « ') » LINE 1: ...uery('asdf') AND etat=1 ORDER BY id DESC OFFSET 0 LIMIT 10') ^

Voici ma commande SQL:

SELECT lien,meta_title FROM lien WHERE lien @@ to_tsquery('".$this->recherche."') AND etat=1 ORDER BY id DESC OFFSET ".$premiermessage." LIMIT ".$this->nbre_lien_page."

Ma table SQL:

--
-- PostgreSQL database dump
--

SET client_encoding = 'LATIN1';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

SET search_path = public, pg_catalog;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: lien; Type: TABLE; Schema: public; Owner: greatmanpers_crawler; Tablespace: 
--

CREATE TABLE lien (
    id integer NOT NULL,
    lien text NOT NULL,
    meta_title text,
    etat integer,
    namelookup_time text
);


ALTER TABLE public.lien OWNER TO greatmanpers_crawler;

--
-- Name: lien_id_seq; Type: SEQUENCE; Schema: public; Owner: greatmanpers_crawler
--

CREATE SEQUENCE lien_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;


ALTER TABLE public.lien_id_seq OWNER TO greatmanpers_crawler;

--
-- Name: lien_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: greatmanpers_crawler
--

ALTER SEQUENCE lien_id_seq OWNED BY lien.id;


--
-- Name: lien_namelookup_time_seq; Type: SEQUENCE; Schema: public; Owner: greatmanpers_crawler
--

CREATE SEQUENCE lien_namelookup_time_seq
    START WITH 1
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;


ALTER TABLE public.lien_namelookup_time_seq OWNER TO greatmanpers_crawler;

--
-- Name: lien_namelookup_time_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: greatmanpers_crawler
--

ALTER SEQUENCE lien_namelookup_time_seq OWNED BY lien.namelookup_time;


--
-- Name: id; Type: DEFAULT; Schema: public; Owner: greatmanpers_crawler
--

ALTER TABLE lien ALTER COLUMN id SET DEFAULT nextval('lien_id_seq'::regclass);


--
-- Name: lien_pkey; Type: CONSTRAINT; Schema: public; Owner: greatmanpers_crawler; Tablespace: 
--

ALTER TABLE ONLY lien
    ADD CONSTRAINT lien_pkey PRIMARY KEY (id);


--
-- Name: search; Type: INDEX; Schema: public; Owner: greatmanpers_crawler; Tablespace: 
--

CREATE INDEX search ON lien USING gin (to_tsvector('english'::regconfig, meta_title));


--
-- PostgreSQL database dump complete
--

Merci d'avance!
Greatman

Hors ligne

#2 26/05/2009 07:23:17

jmax
Membre

Re : Problème de SELECT * avec un Full search

c'est plutôt avec ton code php que tu as un soucis et surtout avec ce que tu mets dans this->recherche

Hors ligne

#3 26/05/2009 13:39:10

greatman
Membre

Re : Problème de SELECT * avec un Full search

$this->recherche contient la recherche de la personne alors il peut contenir a peu près n'importe quoi.

Hors ligne

#4 26/05/2009 18:35:24

Marc Cousin
Membre

Re : Problème de SELECT * avec un Full search

* Si recherche peut contenir n'importe quoi, il peut contenir le caractère ', ce qui poserait problème
* Il faut que recherche soit testé pour éviter les caractères comme "'" , ";" et quelques autres, afin d'éviter les injections SQL ...


Marc.

Hors ligne

#5 26/05/2009 23:29:27

greatman
Membre

Re : Problème de SELECT * avec un Full search

Ok j'ai trouvé le problème de ma Query mais la rien affiche lol

Hors ligne

#6 09/08/2009 09:47:21

JollyAnt
Membre

Re : Problème de SELECT * avec un Full search

J'ai trouvé ce post extrêmement intéressant. Merci beaucoup!

Pret immobilier

Hors ligne

Pied de page des forums