Невозможно использовать оператор вставки в MySQL

void database::adduser(std::string username, std::string password, std::string land){
  connect();
  mysql_query(con, "USE users");
  std::stringstream ss;
  ss << "INSERT INTO users (username, paswd, land, landx, landy) VALUES (" << "'" << username << "'" << "," << "'" << password <<"'" << "," << "'" << land << "'"<< "50, 50)";
  std::string insert;
  insert = ss.str();
  const char * c = insert.c_str();
  mysql_query(con, c);
  mysql_close(con);
}
int database::init(){
  connect();
  mysql_query(con, "USE users");
  mysql_query(con, "CREATE TABLE IF NOT EXISTS users(username TEXT, passwd TEXT, land TEXT, landx INT, landy INT)");

  mysql_close(con);
  return 0;
}
char* database::getpaswd(std::string username){
  connect();
  mysql_query(con, "USE users");
  std::stringstream ss;
  ss << "SELECT paswd FROM users WHERE username = " << "'" << username << "'";
  std::string insert;
  insert = ss.str();
  const char * c = insert.c_str();
  mysql_query(con, c);
  MYSQL_RES *result;
  result = mysql_store_result(con);
  MYSQL_ROW row;
  row = mysql_fetch_row(result);
  if (row == NULL){
    std::cout << "NO USER OF THAT USERNAME" << std::endl;
    return "NOT VALID USERNAME";
  }
  mysql_free_result(result);
  mysql_close(con);
  return row[0];
}
bool database::does_exist_user(std::string user){
  connect();
  mysql_query(con, "USE users");
  std::stringstream ss;
  ss << "SELECT username FROM users WHERE username = " << "'" << user << "'";
  std::string insert;
  insert = ss.str();
  const char *c = insert.c_str();
  mysql_query(con, c);
  MYSQL_RES *result;
  result = mysql_store_result(con);
  MYSQL_ROW row;
  row = mysql_fetch_row(result);
  if (row == NULL){
    mysql_free_result(result);
    return false;
  }
  else{
    mysql_free_result(result);
    return true;
  }
  std::cout << "username taken" << std::endl;
  return true;
}
void database::edit_land(std::string username, std::string land){
  connect();
  mysql_query(con, "USE users");
  std::stringstream ss;
  ss << "UPDATE users SET land = " << "'" << land << "' " << "WHERE username = " << "'" << username << "'";
  std::string insert;
  insert = ss.str();
  const char *c = insert.c_str();
  mysql_query(con, c);
  mysql_close(con);
}
void database::edit_landX(std::string username, int land){
  connect();
  mysql_query(con, "USE users");
  std::stringstream ss;
  ss << "UPDATE users SET landx = " << land << " WHERE username = " << "'" << username << "'";
  std::string insert;
  insert = ss.str();
  const char *c = insert.c_str();
  mysql_query(con, c);
  mysql_close(con);
}
void database::edit_landY(std::string username, int land){
  connect();
  mysql_query(con, "USE users");
  std::stringstream ss;
  ss << "UPDATE users SET landy = " << land << " WHERE username = " << "'" << username << "'";
  std::string insert;
  insert = ss.str();
  const char *c = insert.c_str();
  mysql_query(con, c);
  mysql_close(con);
}
char* database::getland(std::string username){
  connect();
  mysql_query(con, "USE users");
  std::stringstream ss;
  ss << "SELECT land FROM users WHERE username = " << "'" << username << "'";
  std::string insert;
  insert = ss.str();
  const char *c = insert.c_str();
  mysql_query(con, c);
  MYSQL_RES *result;
  result = mysql_store_result(con);
  MYSQL_ROW row;
  row = mysql_fetch_row(result);
  if (row == NULL){
    return "ERROR";
  }
  mysql_close(con);
  mysql_free_result(result);
  return row[0];
}
char* database::getlandY(std::string username){
  connect();
  mysql_query(con, "USE users");
  std::stringstream ss;
  ss << "SELECT landy FROM users WHERE username = " << "'" << username << "'";
  std::string insert;
  insert = ss.str();
  const char *c = insert.c_str();
  mysql_query(con, c);
  MYSQL_RES *result;
  result = mysql_store_result(con);
  MYSQL_ROW row;
  row = mysql_fetch_row(result);
  if (row == NULL){
    std::cout << "ERROE ME BOI" << std::endl;
    return "ERROR";
  }
  mysql_close(con);
  mysql_free_result(result);
  return row[0];
}
char* database::getlandX(std::string username){
  connect();
  mysql_query(con, "USE users");
  std::stringstream ss;
  ss << "SELECT landx FROM users WHERE username = " << "'" << username << "'";
  std::string insert;
  insert = ss.str();
  const char *c = insert.c_str();
  mysql_query(con, c);
  MYSQL_RES *result;
  result = mysql_store_result(con);
  MYSQL_ROW row;
  row = mysql_fetch_row(result);
  if (row == NULL){
    std::cout << "ERROE ME BOI" << std::endl;
    return "ERROR";
  }
  mysql_close(con);
  mysql_free_result(result);
  return row[0];
}
void database::connect(){
  con = mysql_init(NULL);

  if (con == NULL){
    std::cout << mysql_error(con) << std::endl;
    exit(1);
  }

  if (mysql_real_connect(con, "127.0.0.1", "root", "password", "users", 3306, NULL, 0) == NULL){
    std::cout << "NO BEUNO";
    std::cout << mysql_error(con) << std::endl;
    exit(1);
  }
}

проблема в том, что я не могу использовать функцию создания пользователя, но все остальные функции, считываемые из базы данных, работают отлично, поэтому мой вопрос: почему я не могу использовать в программе статус вставки, но могу читать из базы данных. Он работает на терминале, когда я использую mysql -u root -p для ввода mysql на терминале, но при запуске его кода на С ++ он не работает.

Проверьте наличие ошибок в запросе и распечатайте сообщение об ошибке, чтобы узнать, что не так.

Barmar 14.06.2018 01:30

Вы пробовали cout << insert;, чтобы убедиться, что запрос выглядит правильно?

Barmar 14.06.2018 01:32

Я не понимаю. Вы передаете std::string в getpaswd, но возвращаете char *. Я считаю, что вам следует вернуть std::string и изменить параметр, чтобы он передавался по константной ссылке.

Thomas Matthews 14.06.2018 01:53

Измените свой вопрос, включив минимальный воспроизводимый пример.

Sid S 14.06.2018 03:18

Я думал, что это проблемы с администратором, попробуйте открыть свою среду IDE в режиме запуска от имени администратора и выполнить свою программу.

Kartik Maheshwari 14.06.2018 08:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
42
0

Другие вопросы по теме