2016-10-19 6 views
0

Я пытаюсь поставить путь к изображениям, которые я ставлю в фтп раньше, у меня есть 10 различных столбцовНе удается выполнить PDO запрос

photo1, photo2, photo3 

Это мой код

for($i = 1; $i < $number_of_files + 1 ; $i++){ 

    $column = 'photo' . $i; 
    $file = 'gallery/zdjecie-' . $id . '-' . $i; 
    $sql = "UPDATE gallery SET :column=:zdjecie WHERE id=:id"; 
    $go = $db->prepare($sql); 
    $go->bindParam(':column', $column); 
    $go->bindParam(':zdjecie', $file); 
    $go->bindParam(':id', $id); 
    $go->execute(); 
    $go->closeCursor(); 
    $go = null; 
} 

Он показывает это ошибка

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 Something is wrong in your syntax obok ''photo1'='gallery/zdjecie-4-1' WHERE id='4'' w linii 1' in

Так что я хотел сделать что-то вроде этого

в Фото1 колонн должна быть/галерея/Zdjęcie-X-1 ... где X представляет собой идентификатор

+0

'SET: колонка =: zdjecie' вы не можете связать значение имени столбца. вместо того, чтобы перебирать ваши столбцы, вы должны сделать инструкцию * one * update для всей строки. это более чистая, быстрая и обычная практика. –

ответ

1

Эта линия является неправильным

$sql = "UPDATE gallery SET :column=:zdjecie WHERE id=:id"; 

Не используйте : перед именами столбцов , и вы не можете сделать столбец имя сменного параметр

$sql = "UPDATE gallery SET column=:zdjecie WHERE id=:id"; 

вы должны сделать это, чтобы сделать имя столбца сменную

$sql = "UPDATE gallery SET $column = :zdjecie WHERE id=:id"; 

Если посмотреть поближе, это заставляет меня думать, что вы создали базовую эрро в своем проекте базы данных.

Вы должны использовать отдельную таблицу для хранения этих данных с помощью внешнего ключа ключа этой таблицы владеющего

+0

, так как я могу это сделать каждый раз, когда он загружает что-то, имя столбца меняется с фото 1 на фото2, а затем на фото3 и т. Д.? – rrtyui

+0

Я не знаю, как это сделать, но он все еще не работает – rrtyui

+0

nevermind, мне пришлось удалить bindParam для колонки, спасибо! – rrtyui

Смежные вопросы