Задать вопрос

Как исправить ошибку в sql запросе?

Есть функция:

function setLog( $name, $category, $item, $price )
{
	global $config, $pdo;

  $cfg = $config['rcon'];

  $sth = $pdo->prepare("INSERT INTO `{$cfg['table']}` ({$cfg['id']}, {$cfg['username']}, {$cfg['сategory']}, {$cfg['item']}, {$cfg['price']}, {$cfg['buy_time']}) VALUES(NULL, :name, :сategory, :item, :price, NOW())");

  /* $sth->bindParam(':name', $name, PDO::PARAM_STR);
  $sth->bindParam(':сategory', $category, PDO::PARAM_STR);
  $sth->bindParam(':item', $item, PDO::PARAM_STR);
  $sth->bindParam(':price', $price, PDO::PARAM_INT);
  $sth->bindParam(':time', time(), PDO::PARAM_INT);

  return $sth->execute(); */

  $sth->execute([
    'name' => $name,
    'сategory' => $category,
    'item' => $item,
    'price' => $price
  ]);

  return true;

}

Синтаксическая ошибка после её выполнения:
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 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 ':сategory, ?, ?, ?)' at line 1


Что в нём не так? :(
Почему-то когда убираю category полностью, то запрос выполняется...
  • Вопрос задан
  • 125 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
solotony
@solotony
покоряю пик Балмера
двоеточия может поставить ?

':name' => $name,

ну и проверить prepare на соответствие числа имен и values

у тебя ":сategory" - первый символ кирилический
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
TheRonCronix
@TheRonCronix
Вероятно в слове "сategory" имеются нелатинские символы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы