Кратък откъс от документацията на LOAD_FILE()
MySQL функция:
КАКТО можете да видите, има безброй причини да извикате LOAD_FILE()
неуспешно:
-
Файлът трябва да присъства на компютъра, на който работи MySQL сървърът. Това не винаги е същият компютър като този, на който се изпълнява PHP скриптът (и това се случва от съображения за сигурност). Ако работят на различни компютри, най-вероятно не можете да използвате
LOAD_FILE()
. Случаят е приключен.На теория можете да използвате
FTP
илиSFTP
за прехвърляне на файла на компютъра, на който работи MySQL, но поради същите причини за сигурност вероятно нямате достъп до този компютър. -
Ако във вашия случай PHP и MySQL работят на един и същи компютър,
/images/picture.jpg
е компонентът на пътя на URL адреса, а не път във файловата система. Можете да използватеdirname()
и__DIR__
за съставяне на пътя къмизображения
директория, започвайки от пътя на текущия скрипт. -
Потребителят, който използвате за свързване към MySQL сървъра, трябва да има
max_allowed_packetкод>
системната променлива е4 MiB
но DBA може да го промени. Можете да стартиратеSELECT @@max_allowed_packet FROM dual
за да разберете текущата му стойност. -
Ако
secure_file_priv
системната променлива е зададена, тогава пътят, който предоставяте, трябва да е относителен към тази директория. Отново можете да стартиратеSELECT @@secure_file_priv FROM dual
за да намерите текущата му стойност.