mysql выберите - CONCAT больше не работает с обновлением MariaDB - PullRequest
0 голосов
/ 31 января 2020

Этот код является частью функции автозаполнения поиска в базе данных. Это было закодировано некоторое время go, но с тех пор база данных была обновлена ​​с mysql до MariaDB.

Эта часть кода выдает ошибку.

$sql = 'SELECT tree_id, tree_common_name, tree_botanical_name FROM all_trees';
for($i = 0; $i < $p; $i++) {
  $sql .= 'WHERE CONCAT(tree_common_name,tree_botanical_name) LIKE ? ';
}
 $stmt = $conn->prepare($sql);
if($stmt === false) {
  $user_error = 'Wrong SQL: ' . $sql . '<br>' . 'Error: ' . $conn->errno . ' ' . $conn->error;
  trigger_error($user_error, E_USER_ERROR);
}'

сообщение об ошибке

PHP Fatal error:  Wrong SQL: SELECT tree_id, tree_common_name, tree_botanical_name FROM all_treesWHERE CONCAT(tree_common_name,tree_botanical_name) LIKE ? <br>Error: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(tree_common_name,tree_botanical_name) LIKE ?' at line 1 in /home/wiwi1740/public_html/includes/autocomplete.php on line 73

Я смотрел на использование $sql .= 'WHERE CONCAT_WS(' ',tree_common_name,tree_botanical_name) LIKE ? ';, но все равно выдает ошибку.

Любые советы приветствуются. Этот код изначально пришел от кого-то другого, кого я адаптировал для своего клиента.

...