Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Solicitação dupla mysql/php para ajax


  1. Seu código é vulnerável à injeção de SQL. Você realmente deve usar declarações preparadas , para o qual você passa suas variáveis ​​como parâmetros que não são avaliados para SQL. Se você não sabe do que estou falando ou como consertar, leia a história de Mesas Bobby .

  2. Por favor, pare de escrever novo código com a antiga extensão MySQL:ela não é mais mantida e a comunidade iniciou o processo de descontinuação . Em vez disso, você deve usar o MySQLi aprimorado extensão ou o PDO camada de abstração.

  3. Saiba mais sobre as junções SQL .

  4. Você realmente deve se esforçar para alterar seu esquema para ter:

    • uma chave estrangeira de destino na tabela de hotéis (se um hotel estiver associado a não mais de um destino); ou
      ALTER TABLE sirev_Hotels
       ADD COLUMN hoDestination INT,
       ADD FOREIGN KEY hoDestination REFERENCES sirev_Dests (deDestCode)
      

    • uma tabela de relações destino-hotel (se um hotel pode ser associado a vários destinos).
      CREATE TABLE sirev_DestinationHotels (
        dehoDestination INT,
        dehoHotel INT,
        FOREIGN KEY dehoDestination REFERENCES sirev_Dests  (deDestCode),
        FOREIGN KEY dehoHotel       REFERENCES sirev_Hotels (hoCode)
      )
      

  5. Se isso não for possível, você pode usar o FIND_IN_SET() funcionar como um critério de junção:
    SELECT hoCode, hoName
    FROM   sirev_Hotels
      JOIN sirev_Dests ON FIND_IN_SET(sirev_Hotels.hoCode, sirev_Dests.deHotels)
    WHERE  sirev_Dests.deDestName = ?
    

  6. Tendo juntado as tabelas e obtido o hoCode e hoName de todos os hotéis em seu destino desejado, você pode percorrer o conjunto de resultados produzindo , aplicando htmlentities() como apropriado.