Below is the code I am using to search my table. I have made the relevant columns FULLTEXT in the table. This doesn't return me anything. Can someone tell me what it is that i'm doing wrong? Thanks in advance.
$sql = 'SELECT id, person_name, classroom, school, MATCH (person_name, classroom, school) AGAINST (?) AS score FROM images WHERE MATCH(person_name, classroom, school) AGAINST(?) ORDER BY score DESC';
$stmt = $db_connection->prepare($sql);
$stmt->bind_param('ss',$keyword,$keyword);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id,$uname,$class,$school);
$xml = "<data>".PHP_EOL;
while($stmt->fetch()){
$xml .= " <person>".PHP_EOL;
$xml .= " <id>$id</id>".PHP_EOL;
$xml .= " <name>$uname</name>".PHP_EOL;
$xml .= " <class>$class</class>".PHP_EOL;
$xml .= " <school>$school</school>".PHP_EOL;
$xml .= " </person>".PHP_EOL;
}
$xml .= "</data>";
echo $xml;
Below is an image of the indexes of the table:
It would appear that the problem lies in trying to bind the parameters before executing the query. Can someone confirm that you can use this query with prepared statements?