Вставьте в таблицу MySQL из значения и выберите оператор - PullRequest
0 голосов
/ 05 июля 2018

Я хотел бы вставить значения в одну таблицу, выбрав поля из другой таблицы, а также добавить информацию, такую ​​как date и login_id (они не приходят из таблицы, в которой я выбираю).

$sql = "INSERT INTO questions_to_answer (login_id, question_id, Question_Category, QuestionType, Question, Meaning) VALUES (?,?,?,?,?,?)";
$stmt= $DB_con->prepare($sql);

$stmt->execute($test_user_id, 
    "SELECT question_id, 
            Question_Category, 
            QuestionType, 
            Question, 
            Meaning all_questions 
      WHERE personality_profile_questions.Question_Category = 1");

1 Ответ

0 голосов
/ 05 июля 2018

Вам нужно иметь SELECT в prepare, у вас не должно быть команд SQL при выполнении. Если при выполнении он будет обработан как буквенная строка, заключенная в кавычки и экранированная.

Попытка:

$sql = "INSERT INTO questions_to_answer (login_id, question_id, Question_Category, QuestionType, Question, Meaning) 
        SELECT ?, question_id, Question_Category, QuestionType, Question, Meaning 
        WHERE personality_profile_questions.Question_Category = 1";
$stmt= $DB_con->prepare($sql);
$stmt->execute(array($test_user_id));

Предполагая $test_user_id = login_id. Мне не понятно, что такое all_questions.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...