我试图将路径放到我之前放入ftp的图像中,我有10个不同的列
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;
}
显示此错误
致命错误:未捕获的异常&#39; PDOException&#39;与消息 &#39; SQLSTATE [42000]:语法错误或访问冲突:1064有些东西 你的语法错误了#1&#39; photo1&#39; =&#39; gallery / zdjecie-4-1&#39;哪里 ID =&#39; 4&#39;&#39; w linii 1&#39;在
所以我想做这样的事情
在photo1列中应该是/ gallery / zdjecie-X-1 ... 其中X是ID
答案 0 :(得分: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";
仔细观察会让我觉得你在数据库设计中已经做了一个基本的错误。
您应该使用单独的表来使用此拥有表的键的外键来保存此数据