Команда обновления MYSQL через php - PullRequest
0 голосов
/ 19 ноября 2018

Я делаю свой первый php-проект, и теперь мне немного неловко. Я хочу обновить наборы данных в моей базе данных, но когда я выполняю код, ничего не происходит. Сначала я попытался загрузить и обновить сайт с помощью:

header ("location: Erfassen_Server.php");

Чем я видел это предупреждение (строка 1029 - это строка с header "location: Erfassen_Server.php" , а строка 416 - просто строка, которая действительно не может быть источником проблемы):

Невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался в C: \ xampp \ htdocs \ systemübersicht \ Erfassen_Server.php: 416) в C: \ xampp \ htdocs \ systemübersicht \ Erfassen_Server.php в строке 1029

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

$secondsWait = 0;    echo '<meta http-equiv="refresh" content="'.$secondsWait.'">';

Теперь все выглядит хорошо в php, у меня больше нет сообщений об ошибках, но наборы данных в моей базе данных не обновляются. Они абсолютно ничего не делают. Сайт обновляется с неизмененными значениями. Я проверил мою команду обновления sql в веб-интерфейсе mysql с фиксированными значениями вместо переменных, и там она работает. Я также проверил, все ли переменные работают, и имеют ли они значение идентификатора, который мне нужен, поэтому я бы сказал, что все должно быть в порядке.

Вот инструкция SQL-Update:

UPDATE `system` Sys 
JOIN service ON service.Servicename_ID = Sys.FK_Service_ID
JOIN Hardware ON Sys.System_ID = Hardware.FK_System_ID
JOIN Verantwortlichkeit ON Sys.System_ID = Verantwortlichkeit.FK_System_ID
JOIN system_zertifikat ON system_zertifikat.Zertifikate_ID = sys.Zertifikat
JOIN hardware_servername ON hardware.Servername = hardware_servername.Servername_ID
JOIN hardware_domaene ON hardware_domaene.Domaene_ID = hardware.Domaene
JOIN hardware_betriebssystem ON hardware_betriebssystem.Betriebssystem_ID = hardware.Betriebssystem
JOIN hardware_standort ON hardware_standort.Standort_ID = hardware.Standort
JOIN verantwortlichkeit_personen AS AA ON AA.Verantwortlichkeit_Personen_ID = sys.Hersteller
JOIN verantwortlichkeit_personen AS AB ON AB.Verantwortlichkeit_Personen_ID = sys.Externer_Partner
JOIN system_verfuegbarkeitsstufe ON system_verfuegbarkeitsstufe.Verfuegbarkeitsstufe_ID = sys.Verfuegbarkeitsstufe
JOIN system_systemname ON system_systemname.Systemname_ID = sys.Systemname
JOIN system_systemnummer ON system_systemnummer.Systemnummer_ID = sys.Systemnummer
JOIN verantwortlichkeit_rolle ON verantwortlichkeit_rolle.Verantwortlichkeit_Rolle_ID = verantwortlichkeit.Rolle
JOIN verantwortlichkeit_personen AS A0 ON A0.Verantwortlichkeit_Personen_ID = verantwortlichkeit.Hauptverantwortlicher
JOIN verantwortlichkeit_personen AS A1 ON A1.Verantwortlichkeit_Personen_ID = verantwortlichkeit.Stellvertretung
JOIN verantwortlichkeit_personen AS A2 ON A2.Verantwortlichkeit_Personen_ID = verantwortlichkeit.Wissenstraeger_1
JOIN verantwortlichkeit_personen AS A3 ON A3.Verantwortlichkeit_Personen_ID = verantwortlichkeit.Wissenstraeger_2
JOIN verantwortlichkeit_personen AS A4 ON A4.Verantwortlichkeit_Personen_ID = verantwortlichkeit.Verantwortlichkeit_extern


SET 
Sys.Systemnummer = '$Systemnummer_ID', 
Sys.Systembeschreibung = '$Systembeschreibung', 
Sys.Hersteller = '$Hersteller_ID', 
Sys.Externer_Partner = '$Externer_Partner_ID', 
Sys.`BKAG_Brugg` = b'$BKAG_Brugg', 
Sys.`BCIAG_Brugg` = b'$BCIAG_Brugg', 
Sys.`Cables_Diverse_PL_CN_US_DE` = b'$Cables_Diverse', 
Sys.`BINF` = b'$BINF', 
Sys.`BRAG_Kleindoettingen` = b'$BRAG_Kleindoettingen', 
Sys.`BRG_Wunstorf` = b'$BRG_Wunstorf', 
Sys.`BGP_Nordhausen` = b'$BGP_Nordhausen', 
Sys.`Pipes_Diverse_FR_PL_IT_US` = b'$Pipes_Diverse', 
Sys.`Ropes_BDAG_Birr` = b'$Ropes_BDAG', 
Sys.`HOLDING_Brugg` = b'$HOLDING_Brugg', 
Sys.`BIAG_Brugg` = b'$BIAG_Brugg', 
Sys.`BPK_Brugg` = b'$BPK_Brugg', 
Sys.`Dritte_Schule_Brugg_LithCom_usw` = b'$Dritte', 
Sys.`Verfuegbarkeitsstufe` = '$Verfuegbarkeitsstufe_ID', 
Sys.`Datenverlust` = '$Datenverlust_ID', 
Sys.`Systemname` = '$Systemname_ID', 
Sys.`Zertifikat` = '$Zertifikat_ID',

hardware.`Servername` = '$Servername_ID',
hardware.`Domaene` = '$Domaene_ID',
hardware.`Betriebssystem` = '$Betriebssystem_ID',
hardware.`Lokale_Datenbank` = b'$Lokale_Datenbank',
hardware.`Datenbank_SQL_Master` = '$Datenbank_SQL_Master',
hardware.`Instanzname` = '$Instanzname',
hardware.`Standort` = '$Standort_ID',
hardware.`Backup_mit` = '$Backup_mit',


verantwortlichkeit.`Rolle` = '$Rolle_ID',
verantwortlichkeit.`Hauptverantwortlicher` = '$Hauptverantwortlicher_ID',
verantwortlichkeit.`Stellvertretung` = '$Stellvertretung_ID',
verantwortlichkeit.`Wissenstraeger_1` = '$Wissenstraeger_1_ID',
verantwortlichkeit.`Wissenstraeger_2` = '$Wissenstraeger_2_ID',
verantwortlichkeit.`Verantwortlichkeit_extern` = '$Verantwortlichkeit_Extern_ID'


WHERE Sys.System_ID = $System_ID"

Я потратил очень много времени на поиск решения, но не могу найти ничего, почему оно не обновляется. Может ли быть так, что новое решение для обновления имеет ту же проблему, но не дает никаких ошибок? Или я что-то наблюдаю?

Если бы кто-нибудь мог мне помочь, я был бы очень благодарен.

С уважением okanog

1 Ответ

0 голосов
/ 19 ноября 2018

Кажется, перед функцией header () у вас есть какой-то вывод или другая функция заголовка. Для запроса mysql вы должны использовать mysqli или PDO и связать значение, вместо этого непосредственно указав переменную в запросе, в новой версии PHP это устарело.

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