Является ли мой оператор INSERT INTO SELECT FROM в php правильным?

0

У меня есть инструкция MySQL в PHP, чтобы переместить одну строку в другую таблицу, но она продолжает отображать:

* У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с "1" в строке 1 *

Вот мой код:

$sql = mysqli_query($conn,"
INSERT INTO userdocs 
SELECT transaction_no
     , document_type
     , date_received
     , application_no
     , hei
     , school_name
     , from_co
     , other_govt
     , contact_person
     , comment
     , program
     , year_level
     , academic_year 
  FROM records 
 WHERE transaction_no = '$transaction_no'
");

if(!mysqli_query($conn, $sql))


            {  
                echo (mysqli_error($conn));
            }  

else
{
    echo "Document Sent! Going back to Home Page...";
    header("refresh:3; url=director.php");
}
  • 0
    ваш синтаксис немного неправильный, см .: dev.mysql.com/doc/refman/8.0/en/insert-select.html
  • 0
    @smith Смит, здесь нет ничего синтаксически неправильного.
Теги:

1 ответ

1
Лучший ответ

Вероятно, включение $transaction_no приводит к неверному выражению. Попробуйте проверить инструкцию SQL. Как правило, при работе с динамическими параметрами следует использовать подготовленные инструкции:

$stmt = $db->prepare('insert into userdocs select transaction_no, document_type, date_received, application_no, hei, school_name, from_co, other_govt, contact_person, comment, program, year_level, academic_year from records where transaction_no = ?');

$stmt->bind_param('s', $transaction_no);

$result = $stmt->execute();

Или используйте PDO.

  • 0
    Для чего нужна переменная $ db?
  • 0
    Это просто ваш объект mysqli ( new mysqli(...) или как вы создаете свое соединение).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню