Project

General

Profile

Actions

Anomalie #1125

closed

error n° 1064 : syntax error, unexpected '@', expecting $end - [< v2.2]

Added by Simon about 3 years ago. Updated about 3 years ago.

Status:
Rejeté
Priority:
Normal
Assignee:
Category:
general
Target version:
Start date:
03/24/2021
Due date:
% Done:

100%

Estimated time:
1.00 h
Resolution:

Description

SQL query : SELECT project_id, project_name, DATE_FORMAT(project_published_date, '%d-%m-%Y') AS date_display, project_statut AS statut, MATCH(project_name,project_goal,project_description,project_body,project_comment,project_budget_comment, project_elected, project_team) AGAINST(';Bg@dgwCrbTI:KqO') AS pertinence FROM l21_project WHERE MATCH (project_name,project_goal,project_description,project_body,project_comment,project_budget_comment, project_elected, project_team) AGAINST (';Bg@dgwCrbTI:KqO' IN BOOLEAN MODE) AND project_statut<>'E' AND project_statut<>'AA' AND project_statut<>'D' ORDER BY pertinence DESC;

See also : https://stackoverflow.com/questions/25088183/mysql-fulltext-search-with-symbol-produces-error-syntax-error-unexpected

Actions #1

Updated by Simon about 3 years ago

https://bugs.mysql.com/bug.php?id=74042

See : https://dev.mysql.com/doc/refman/8.0/en/fulltext-boolean.html

InnoDB full-text search does not support the use of the @ symbol in boolean full-text searches. The @ symbol is reserved for use by the @distance proximity search operator. 
Actions #2

Updated by Simon about 3 years ago

  • Tracker changed from Evolution to Anomalie
Actions #3

Updated by Simon about 3 years ago

  • Subject changed from error n° 1064 : syntax error, unexpected '@', expecting $end to error n° 1064 : syntax error, unexpected '@', expecting $end - [< v2.2]
  • Status changed from Nouveau to Rejeté
  • % Done changed from 0 to 100

Already fixed in v2.3 !

https://dev.linea21.com/projects/linea21/repository/linea21/entry/trunk/v2.3/search/display.php#L31

    $keywords = trim(addslashes($keywords));

    // https://stackoverflow.com/questions/26507087/escape-string-for-use-in-mysql-fulltext-search
    // https://dev.linea21.com/issues/912
    $keywords = preg_replace('/[^\p{L}\p{N}_]+/u', ' ', $keywords);
    $keywords = preg_replace('/[+\-><\(\)~*\"@]+/', ' ', $keywords);

Actions

Also available in: Atom PDF