Как исправить мой код, когда запрос mysql умирает, но запрос работает в СУБД?

#php #mysql

#php #mysql

Вопрос:

Я пытаюсь настроить веб-сайт для школьного procjet, где я должен присоединяться к таблицам, чтобы получить результат. Когда я вставляю код в phpMyAdmin, он запускается и выдает желаемый результат, но в файле php он умирает.

 <?php

$database = conn

if (mysqli_connect_error()) {

    alert ("Ingen kontakt med server.");

}

if (isset($_POST ["finnKlasse"])) {

    $klassekode=$_POST ["klassekode"];  
    $sqlSetning= "SELECT STUDENT.bildenr, STUDENT.fornavn, STUDENT.etternavn, BILDE.filnavn FROM STUDENT INNER JOIN BILDE ON STUDENT.bildenr=BILDE.bildenr WHERE STUDENT.klassekode=$klassekode;";
    $sqlResultat=mysqli_query($database,$sqlSetning) or die ("Errormessage");

    $rad=mysqli_fetch_array($sqlResultat); 

    print("$rad");

}
  

Теперь я получаю сообщение об ошибке,

в то время как я хотел бы вывести таблицу с помощью STUDENT.bildenr, STUDENT.fornavn, STUDENT.etternavn, BILDE.filnavn (это работает в phpMyAdmin).

Ответ №1:

Какое сообщение об ошибке вы получаете?
Является ли $klassekode строкой? Если это так, измените это

 $sqlSetning= "SELECT STUDENT.bildenr, STUDENT.fornavn, STUDENT.etternavn, BILDE.filnavn FROM STUDENT INNER JOIN BILDE ON STUDENT.bildenr=BILDE.bildenr WHERE STUDENT.klassekode=$klassekode;";
  

Для

 $sqlSetning= "SELECT STUDENT.bildenr, STUDENT.fornavn, STUDENT.etternavn, BILDE.filnavn FROM STUDENT INNER JOIN BILDE ON STUDENT.bildenr=BILDE.bildenr WHERE STUDENT.klassekode='$klassekode'";<br>
  

Важное примечание: это уязвимо для внедрения SQL. Пожалуйста, попробуйте вместо этого использовать подготовленные инструкции
https://www.w3schools.com/php/php_mysql_prepared_statements.asp

Комментарии:

1. Спасибо за подсказку с использованием подготовленных инструкций! Это так важно.