-
Din kode er sårbar over for SQL-injektion. Du virkelig skal bruge forberedte erklæringer , hvor du sender dine variabler som parametre, der ikke bliver evalueret til SQL. Hvis du ikke ved, hvad jeg taler om, eller hvordan du løser det, så læs historien om Bobby Tables .
-
Stop venligst med at skrive ny kode med den gamle MySQL-udvidelse:den vedligeholdes ikke længere, og fællesskabet har påbegyndt afskrivningsproces . I stedet skal du bruge enten den forbedrede MySQLi udvidelsen eller PDO abstraktionslag.
-
Lær om SQL-tilmeldinger .
-
Du virkelig bør bestræbe sig på at ændre dit skema til at have enten:
-
en fremmed destinationsnøgle i hotellertabellen (hvis et hotel ikke er tilknyttet mere end én destination); eller
ALTER TABLE sirev_Hotels ADD COLUMN hoDestination INT, ADD FOREIGN KEY hoDestination REFERENCES sirev_Dests (deDestCode)
-
en tabel over destination-hotel relationer (hvis et hotel kan associeres med flere destinationer).
CREATE TABLE sirev_DestinationHotels ( dehoDestination INT, dehoHotel INT, FOREIGN KEY dehoDestination REFERENCES sirev_Dests (deDestCode), FOREIGN KEY dehoHotel REFERENCES sirev_Hotels (hoCode) )
-
-
Hvis det ikke er muligt, kan du bruge MySQL's kode>FIND_IN_SET() fungere som et join-kriterium:
SELECT hoCode, hoName FROM sirev_Hotels JOIN sirev_Dests ON FIND_IN_SET(sirev_Hotels.hoCode, sirev_Dests.deHotels) WHERE sirev_Dests.deDestName = ?
-
Efter at have tilsluttet sig tabellerne og fået
hoCode
oghoName
af alle hoteller på din ønskede destination, kan du sløjfe over resultatsættet med, ved at anvende
htmlentities()
efter behov.