Ik heb een (vind ik) vreemd probleem waar ik niet uitkom.. 
Met behulp van PDO maak ik verbinding met de database. Nu heb ik het volgende stukje code dat geen resultaten geeft:
Als ik vervolgens de WHERE clause eruit haal, dus:
WHERE MATCH (title, plot) AGAINST ('?' IN BOOLEAN MODE)
dan geeft de query wel resultaat.. Iemand enig idee waar ik moet zoeken om dit probleem op te lossen? Het maakt verder niet uit of ik een vraagteken gebruik of dat ik met bijv ':searchTerms' => $searchTerms de query uitvoer. Door $searchTerms rechtstreeks (op de plekken van de vraagtekens) in de query te zetten krijg ik wel resultaten (dus ook met de WHERE clause erin), maar dat wil ik uiteraard niet vanwege injectie.
Met behulp van PDO maak ik verbinding met de database. Nu heb ik het volgende stukje code dat geen resultaten geeft:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| $searchTerms = "+*breaking* +*bad*"; $query = "SELECT *, MATCH (title) AGAINST ('?' IN BOOLEAN MODE) AS title_relevance, MATCH (plot) AGAINST ('?' IN BOOLEAN MODE) AS plot_relevance FROM titles WHERE MATCH (title, plot) AGAINST ('?' IN BOOLEAN MODE) ORDER BY title_relevance DESC, plot_relevance DESC, title ASC LIMIT 10"; $q = $mysql->prepare($query); $q->execute(array($searchTerms)); |
Als ik vervolgens de WHERE clause eruit haal, dus:
WHERE MATCH (title, plot) AGAINST ('?' IN BOOLEAN MODE)
dan geeft de query wel resultaat.. Iemand enig idee waar ik moet zoeken om dit probleem op te lossen? Het maakt verder niet uit of ik een vraagteken gebruik of dat ik met bijv ':searchTerms' => $searchTerms de query uitvoer. Door $searchTerms rechtstreeks (op de plekken van de vraagtekens) in de query te zetten krijg ik wel resultaten (dus ook met de WHERE clause erin), maar dat wil ik uiteraard niet vanwege injectie.
[ Voor 8% gewijzigd door mauricedb op 23-03-2014 21:59 ]