Na lang en hard zoeken, en ver en wijd, hebben we een (wat volgens ons de enige) oplossing is gevonden:maak een functie om elk van deze 'mini-query's' afzonderlijk te doorlopen en het lijkt een stuk gelukkiger te zijn nu! We kwamen deze suggestie eerder tegen, maar we wezen het aanvankelijk af omdat het veel tijd zou (en kostte) om 973 regels code te scheiden om alle afzonderlijke database-toevoegingen te splitsen...
$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);