Я добавляю временную таблицу, которая содержит список имен файлов, которые будет использоваться вторым запросом. Я понимаю, что имена файлов могут использоваться для SQL-инъекций, поэтому я хочу использовать подготовленные операторы.Использование параметров для замены имен mysql для подготовленного оператора
упрощенная версия моего рабочего запроса выглядит следующим образом (например, там может быть 50 имен файлов):
CREATE TEMPORARY TABLE tempfile(filename varchar(100));
INSERT INTO tempfile (filename)
SELECT filename FROM (
SELECT 'myfile.jpg' AS filename UNION SELECT "myfile2.jpg") xx;
Я пытался заменить его:
CREATE TEMPORARY TABLE tempfile(filename varchar(100));
INSERT INTO tempfile (filename)
SELECT filename FROM (
SELECT ? AS filename UNION SELECT ?) xx;
Но mysql
дает мне синтаксис ошибка. Любые идеи, как использовать параметры с этим запросом?
И если вы можете дать мне лучшее название для этого сообщения, я его изменю.
ОБНОВЛЕНИЕ - Примечание
Этот запрос будет вставлять две записи. Вы можете запросить их:
SELECT tf.filename FROM tempfile
Какой смысл «UNION SELECT» myfile2.jpg «'? Это никогда не будет вставлено. –
@TomasoAlbinoni Этот запрос вставляет список имен файлов таким образом в столбец 'filename'. Это способ вставить данные таблицы со списком известных значений. В приведенном выше запросе будут вставлены два имени файла. – mseifert
Я стою исправлена. Я был исключен из-за отсутствия имени столбца, но я думаю, что «UNION» позаботится об этом. –