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

Usando uma variável de sessão PHP dentro de um arquivo MySQL executado em PHP?


Depois de pesquisar muito e muito, encontramos uma solução (o que achamos ser a única):crie uma função para percorrer cada uma dessas 'mini-consultas' individualmente e parece ser muito mais feliz agora! Na verdade, encontramos essa sugestão antes, mas a rejeitamos inicialmente porque levaria (e levou) muito tempo para separar 973 linhas de código para dividir todas as adições individuais do banco de dados ...
$populate = 
"
    CREATE TEMPORARY TABLE IF NOT EXISTS `mldb`.`TempSchool`
    (
        `CentreNo` INT UNSIGNED NOT NULL,
        `School` VARCHAR(255) NULL,
        `Street` VARCHAR(255) NULL,
        `Town` VARCHAR(255) NULL,
        `County` VARCHAR(255) NULL,
        `Postcode` VARCHAR(10) NULL,
        `Tel` VARCHAR(45) NULL,
        `URL` VARCHAR(512) NULL,
        `Email` VARCHAR(255) NULL,
        `Headteacher` VARCHAR(255) NULL,
        `LEA` VARCHAR(45) NULL,
        `LEANo` INT UNSIGNED NULL,
        `EstablishmentNo` INT UNSIGNED NULL,
        `URN` INT UNSIGNED NULL,
        `Governance` VARCHAR(45) NULL,
        `Phase` VARCHAR(45) NULL,
        PRIMARY KEY (`CentreNo`)
    )
    ENGINE = InnoDB ;

" ;
populate ($dbc, $populate);


$populate = 
"   
    LOAD DATA INFILE '$path'
    IGNORE INTO TABLE `mldb`.`TempSchool`
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '\"'
    LINES TERMINATED BY '\\r\\n'
    IGNORE 1 LINES
        (@AdNo, @UPN, @ULN, @UCI, @CandidateNo, @LegalSurname, @LegalForename, 
        @PreferredSurname, @PreferredForename, @Gender, @DOB, @Email,
        @InCare, @EverInCare, @FSM, @FSMEver6, @EAL, @SENStatus, @AMA,
        @Attendance, @RegGroup, @YearGroup, @EnteredYearDate, 
        @Class, @Subject, @Staff, @Initials, 
        CentreNo, School, Street, Town, County, Postcode, Tel, URL,
        Email, Headteacher, LEA, LEANo, EstablishmentNo, Governance, Phase)
" ;
populate ($dbc, $populate);