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:
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
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:
Hieronder heb ik de echo van $Where gezet:
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
)
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
...gamen blijft leuk...