Проблема с вставкой в SQLite3 из PHP

#php #sqlite

#php #sqlite

Вопрос:

У меня странная проблема на странице PHP, я пытаюсь вставить новую строку в таблицу users (SQLite3) следующим образом

  $id=$db->insert_user("'".$parameters['first_name']."'", "'".$parameters['last_name']."'", "'".$parameters['email']."'", "'".$parameters['username']."'", "'".$parameters['password']."'", "'".$parameters['privilege']."'");
  

где

      try {
            $db = new SQLite3($this->db_path);

           echo "INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES('$first_name','$last_name','$email','$username','$password','$privilege');";
           $db->query("INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES('$first_name','$last_name','$email','$username','$password','$privilege');");

            $last_id = $db->lastInsertRowID();
            echo ''.$last_id;
            $db->close();
            return $last_id;
        } catch (Exception $e) {
            echo 'Exception caught: ', $e->getMessage(), "n";
        }

INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES(''drkosh'',''drkosh'',''drkosh'',''drkosh'',''drkosh'',''ignore'');
  

результат echo равен

 INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES(''drkosh'',''drkosh'',''drkosh'',''drkosh'',''drkosh'',''ignore'');
  

Сообщение об ошибке странное, оно написано в строке 35, но 35 находится в switch, и я никогда не прохожу через 35, есть перерывы. Кто-нибудь имеет представление, что не так? (все столбцы в порядке и имя таблицы)

Ответ №1:

посмотрите на sql-запрос, там есть ''drkosh'' , но там должно быть только 'drkosh'

 INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES(''drkosh'',''drkosh'',''drkosh'',''drkosh'',''drkosh'',''ignore'');
  

попробуйте это:

 $id=$db->insert_user($parameters['first_name'], $parameters['last_name'], $parameters['email'], $parameters['username'], $parameters['password'], $parameters['privilege']);