[php/mysql]Query opslaan in attribuut

Pagina: 1
Acties:
  • 42 views sinds 30-01-2008

  • Selachii
  • Registratie: April 2000
  • Laatst online: 05-07-2020
Oki,

ik worstel al een tijdje met een probleem, waar ik ook na wat inet zoekwerk(google,kweet niet beter), niet achter kom.

In mijn php programma zit een zoekfunctie. uit deze zoekfunctie komt een query rollen (erg lange query voor mijn doen btw).

Nou moeten gebruikers deze query op kunnen slaan, en dit moet in de code gebeuren (dus niet via explorer de url).

Kheb dus een mooi tabelletje:

code:
1
2
3
4
5
6
7
8
CREATE TABLE UserCustomSearch (
Id          INT UNSIGNED    NOT NULL    AUTO_INCREMENT,
Title           VARCHAR(128)         NOT NULL   ,
Query                               TEXT                    NOT NULL    ,
User_id         INT UNSIGNED    NOT NULL    ,
INDEX(User_id)          ,
FOREIGN KEY(User_id)    REFERENCES Users(Id)        ,
PRIMARY KEY(Id)     );


In het veld query wou ik dan dus gewoon de volledige query opslaan. Ik had deze eerst van het type varchar gemaakt, maar heb dat later in TEXT veranderd met de hoop daarmee het probleem op te lossen.

Ik krijg dus een mysql_error() foutmelding bij het uitvoeren van mijn 'opsla' code.
bij het uitvoeren van de zoekquery zelf heb ik dus GEEN problemen.

Ik heb het opslaan van de query op het moment voor het gemak even beperkt tot de 'WHERE' statement.
Dit is mijn opsla-code
code:
1
2
3
4
5
if($BookTitle){
    mysql_query("INSERT INTO UserCustomSearch (Title, Query, User_id)
                     VALUES ('$BookTitle', '$Where', '$s_UserId')",$g_db_Link);
                     echo "save succesful";
                }


de code spreekt redelijk voor zich lijkt mij (als er een titel om op te slaan is gespecificeerd, slaatie op)

als ik dit stuk code uitvoer krijg ik onderstaande foutmelding:

code:
1
You have an error in your SQL syntax near '6' ) ', '1')' at line 2


Hieronder heb ik de echo van $Where gezet:
code:
1
WHERE LastStatus_id = Status.Id AND S.Software_id = Software.Id AND S.Object_id = SObjects.Id AND S.Priority_id = Priority.Id AND ( S.Project_id = '6' )


Nou ligt de fout volgens mij bij het feit dat de query in $Where, wordt behandeld als een 'echte' query in de opsla-code. In de foutmelding is de "'1')" namelijk $s_UserId.

Hoe kan ik ervoor zorgen dat hij de query niet als query leest? In principe mag dit wel, MAAR dan moet ik dus opgeven dat zoekquery eindigt na de '6') ??

Ik kon via de search niet zo makkelijk iets vinden in deze trand.

Ik ben nieuw met php/mysql :) (en P&W ;) )

...gamen blijft leuk...


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Dit topic is gesloten.